本文采用从docker hub安装,若没有互联网,需要找一台连接互联网的设备拉取镜像以后导出保存到本地,再将镜像手动上传加载到指定服务器进行配置部署。
补充:为了便于维护nginx配置,将容器的nginx目录绑定挂载到宿主机,后期在宿主机维护配置文件即可。
下载镜像
docker pull nginx:latest
创建挂载目录
# 配宿主机挂载目录
mkdir -p /vdockerfile
简单启动容器
这里启动容器的目的是为了将容器中配置文件拷贝到宿主机中的挂载目录里.
原因:
启动时(run),若挂载文件,当宿主机和容器都不存在 nginx.conf 文件时, 执行启动命令时docker会将nginx.conf作为目录创建,而我们不需要创建目录而是配置文件。
启动时(run),若挂载目录,不会将容器中指定绑定目录下的内容(目录/文件)同步至宿主机,即挂载的目录将是一个空目录,启动时便会报错(找不到文件)。

# 启动容器
docker run --name nginx -p 80:80 -d nginx
# 将容器中nginx文件复制到宿主机的挂载目录中
docker cp nginx:/etc/nginx /vdockerfile
删除容器
上一步创建的简单容器就是为了拷贝文件,拷贝成功后就删除简单容器,下一步会通过挂载方式创建正式容器。
# 删除正在运行的容器
docker rm -f nginx
运行容器
docker run -d -p 8083:80 --name nginx \
-v /vdockerfile/nginx:/etc/nginx \
nginx
#nginx默认端口为80,所以映射的容器端口需要为80,若需要使用其它端口,需要修改nginx默认端口后再运行。
nginx默认端口修改
查看nginx.conf文件,包含一个指定的默认配置文件

查看默认配置文件(由于我们配置了宿主机目录绑定,此处直接到宿主机下查找修改便会同步至容器)

修改默认配置文件
sudo vim /vdockerfile/nginx/conf.d/default.conf

参数说明:
-d 后台运行
-p 端口映射(宿主机端口:容器端口)
--restart=always 容器自动重启
-v 目录挂载(宿主机目录:容器目录)
查看日志
sudo docker container logs nginx

浏览器访问
http://ip:端口
#若为宿主机,就为:http://宿主机ip:8083
#若为容器,就为:http://容器ip:80

检查查看容器详情
sudo docker container inspect nginx
当中可看到容器IP

访问 http://172.17.0.3:80
