这里我们选择安装nginx-1.20.0
我们这里选择通过已有的镜像安装;
1.根据文章docker安装指定版本的tag镜像得到安装nginx的docker命令
docker pull nginx:1.20.0
2.安装完成后,我们可以使用以下命令来运行 nginx 容器
docker run --name nginx -p 9527:80 -d nginx:1.20.0
--name nginx:容器名称。
-p 9527:80: 端口进行映射,将本地 9527 端口映射到容器内部的 80 端口。
-d nginx: 设置容器在在后台一直运行。
nginx:1.20.0: 设置容器以nginx:1.20.0镜像启动(镜像名:镜像tag)
3.访问 我的是阿里云服务器 阿里云公网ip:9527 我的9527端口之前配置过放行
到这里我们已经完成了nginx容器的搭建,但是此时还有个问题,我们如何修改nginx的配置文件?
这里有两种方式解决这个问题:
1.每次都进入到nginx容器内部修改。适合改动少,简单使用的情况
进入nginx容器内部命令
docker exec -it 容器id /bin/bash
nginx配置文件都在/etc/nginx
目录下
nginx容器内的默认首页html文件目录
为/usr/share/nginx/html
日志文件位于/var/log/nginx
执行exit
命令我们可以从容器内部退出
。
2.将nginx容器内部配置文件挂载到主机,之后就可以在主机对应目录修改即可。适合频繁修改,复杂使用的情况
在主机/mnt目录
下执行 以下创建挂载目录
mkdir -p ./nginx/{conf,html,logs}
.将容器内的nginx.conf
与default.conf,index.html
文件分别拷贝到主机/mnt/nginx
和/mnt/nginx/conf和/mnt/nginx/html
下,分别执行:
docker cp ef:/etc/nginx/nginx.conf /mnt/nginx
dokcer cp ef:/etc/nginx/conf.d/default.conf /mnt/nginx/conf/
dokcer cp ef:/usr/share/nginx/html/index.html /mnt/nginx/html/
docker cp :用于容器与主机之间的数据拷贝。
ef:容器id
解释:将容器96f7f14e99ab的/etc/nginx/nginx.conf目录拷贝到主机的/mnt/nginx目录中。
停止并删除nginx容器,通过重新启动一个容器挂载文件
docker stop nginx
docker rm nginx
docker run -d --name nginx -p 9527:80 -v /mnt/nginx/nginx.conf:/etc/nginx/nginx.conf -v /mnt/nginx/logs:/var/log/nginx -v /mnt/nginx/html:/usr/share/nginx/html -v /mnt/nginx/conf:/etc/nginx/conf.d --privileged=true nginx:1.20.0
为展示效果,我们在/mnt/nginx/html 下页面增加挂载成功这句话:
重新请求:
成功!