一.拉取Nginx 镜像
docker pull nginx
二.先安装一个Nginx 以便拷贝nginx配置文件
docker run --name nginxTest -d nginx
三.从已安装容器中拷贝配置文件
docker cp nginxTest:/etc/nginx/nginx.conf /root/nginx/nginx.conf
1. cp //拷贝命令
2. nginxTest:/etc/nginx/nginx.conf //容器nginxTest nginx配置文件地址
3. /root/nginx/nginx.conf //宿主机用于挂载容器Nginx配置的地址
四.删除之前安装的临时镜像
docker stop nginxTest //先停止容器 docker rm nginxTest //再删除容器
五.切换目录到nginx地址
cd ~/nginx //若无nginx 文件夹新建
六.安装正式容器
docker run -p 80:80 --name mynginx -v $PWD/www:/www -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/wwwlogs -d nginx
1. -p 80:80 //把本机80端口 映射到 docker容器
2. --name mynginx //名称为mynginx
3. -v $PWD/www:/www //把当前目录下的www 文件夹 挂载到 docker的 www 目录
4. -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf //把当前目录下的conf/nginx.conf 挂载到 docker容器的/etc/nginx/nginx.conf文件上
5. -d nginx 以守护进程方式加载镜像 nginx
总结之所以要先安装并把nginx配置文件临时容器拷贝到宿主机,是因为宿主机如果nginx配置文件与容器nginx不一致无法挂载
回报异常:Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.