本篇记录nginx在docker中的使用

下载镜像

docker pull nginx

安装nginx容器

docker run -d --rm --name mynginx -p 80:80 -p 443:443 nginx 
  • -d: 在后台保持运行
  • -p: 容器与宿主机的端口映射
  • –rm: 容器停止后删除
  • –name: 容器的名字

此时可在浏览器访问ip,正常的话可以看到nginx的欢迎页。

挂载nginx配置文件到宿主机

在宿主机/mnt目录下执行 mkdir -p ./nginx/{conf,html,logs}创建挂载目录

进入/mnt/nginx目录下, cd nginx

将容器内的nginx.conf与deafualt.conf拷贝至宿主机/mnt/nginx与/mnt/nginx/conf下,执行 docker cp mynginx:/etc/nginx/nginx.conf ./ 再执行 docker cp mynginx:/etc/nginx/conf.d/default.conf ./conf/

  • cp: 复制
  • mynginx: 容器名

之后停止该容器

docker stop mynginx

重新创建容器,并挂载nginx配置文件

docker run -d --name mynginx -p 80:80 -p 443:443 -v /etc/localtime:/etc/localtime:ro -v /mnt/nginx/nginx.conf:/etc/nginx/nginx.conf -v /mnt/nginx/conf/:/etc/nginx/conf.d/ -v /mnt/nginx/logs:/var/log/nginx -v /mnt/nginx/html:/usr/share/nginx/html -v /mnt/nginx/webroot:/var/www/html -v /mnt/ssl:/etc/letsencrypt --privileged=true nginx
  • -v 挂载目录
  • –privileged=true 容器内部root权限,此处目的在于对挂载目录的读写权限

此时在浏览器访问ip,发现出现403,因为宿主机内的/mnt/nginx/html为空,在html目录下新建一个index.html,内容随意,再次访问即可。


时如流水去无返