docker安装nginx

主要命令

  1. 拉取镜像

    docker pull nginx
  2. 在宿主机创建目录用于挂载

#创建nginx的配置文件目录
#创建nginx的日志文件目录
#创建nginx的静态资源文件目录
mkdir -p /home/nginx/conf
mkdir -p /home/nginx/log
mkdir -p /home/nginx/html

#创建并启动nginx容器 宿主机的80端口(左)映射到容器的80端口(容器的端口不是乱填的根据官方镜像的设置) 也就是说访问服务器时,80端口的请求会转发给容器 --name 是容器名 自定义 -d nginx(-d nginx:versionNo)表示使用nginx镜像(不加版本号表示最新版镜像)
docker run --name nginx -p 80:80 -d nginx

#将容器内的文件拷贝到上面创建的文件中 (将容器内的文件内容拷贝到宿主机中来)
docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf
docker cp nginx:/etc/nginx/conf.d /home/nginx/conf/conf.d
docker cp nginx:/usr/share/nginx/html /home/nginx/

#查看容器信息
#停止刚才创建的nginx容器
#删除容器 没停止不能删 docker rm -f nginx 强删
docker ps -a
docker stop nginx
docker rm nginx


#重新创建并进行数据卷挂载 -v dir1:dir2 表示把宿主机dir1目录挂载到容器的dir2目录
docker run \
-p 80:80 \
--name nginx \
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /home/nginx/log:/var/log/nginx \
-v /home/nginx/html:/usr/share/nginx/html \
-d nginx:latest

可以不进行数据卷挂载,最简单的方式就是第9行那样 (但最好去这里查看镜像的使用https://hub.docker.com/)

其他命令

进入容器

如果要进行nginx的配置文件的修改或者静态资源文件的添加,就需要进入容器内部操作

#进入nginx容器,以命令行的方式操作
#进入容器之后,还是使用linux基本命令进行操作,只是少量很多命令如vi,可能要安装一些东西
docker exec -it 容器名 bash

查看容器挂载情况

docker 容器名 inspect

image-20230807155407119

找到Mounts,Source代表宿主机中目录,Destination表示容器内目录

将镜像打包与解压

docker save -o xxx.tar 镜像名:版本号  #将镜像打包成tar
docker load -i nginx.tar #将tar包解压成镜像