天天看点

docker nginx安装&挂载外部配置和数据 一气呵成

  1. nginx不能直接挂载数据,先跑一个demo然后复制里面的内容
docker run -d --name ng nginx
           

注意:只要不报错就不要停止运行,有可能你之前没有下载nginx的镜像,docker会自动帮你下载。

docker nginx安装&挂载外部配置和数据 一气呵成
  1. 然后使用

    docker cp

    复制内容 ,我之前基础命令篇(点击跳转)都有写

(1) 先复制nginx的配置

# 创建挂载目录
 mkdir -p /root/docker-data-test/nginx
# 复制容器内容
docker cp ng:/etc/nginx/  /root/docker-data-test/nginx/conf
---------------------------------------------------------------------------------
ng:/etc/nginx 							-> 容器路径
/root/docker-data-test/nginx/conf/      -> 目标路径
           
docker nginx安装&挂载外部配置和数据 一气呵成

(2) 复制html中的内容

# 复制容器内容
docker cp ng:/usr/share/nginx/html  /root/docker-data-test/nginx
           

(3) 复制log的内容

docker cp ng:/var/log/nginx  /root/docker-data-test/nginx/log  
           
docker nginx安装&挂载外部配置和数据 一气呵成
  1. 启动并挂载nginx

刚才的demo如果不想要可以使用命令删除它

docker rm -f ng

# 启动并挂载外部配置和数据
docker run -d \
--name nginx  \
--restart always \
-v ~/docker-data-test/nginx/html:/usr/share/nginx/html \
-v ~/docker-data-test/nginx/log:/var/log/nginx \
-v ~/docker-data-test/nginx/conf:/etc/nginx  \
-p 81:80 \
nginx
           

涉及到的命令行参数:

-d                                                  				-> 以守护进程的方式启动容器
-p 81:80                                        					-> 绑定宿主机端口
--name nginx                                     					-> 指定容器名称
--restart always                                    				-> 开机启动
--privileged=true                                   				-> 提升容器内权限
-v ~/docker-data-test/nginx/conf:/etc/nginx						    -> 映射配置文件
-v ~/docker-data-test/nginx/html:/usr/share/nginx/html              -> 映射html目录
-v ~/docker-data-test/nginx/log:/var/log/nginx		                -> 映射日志目录