本篇记录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,内容随意,再次访问即可。