1:可以先搜索现成的镜像文件 docker search nginx
2:这里我们拉取官方的镜像 docker pull nginx
3:拉取完后我们运行 docker images 就会看到有个nginx的镜像了
4:我们先安装一个测试的nginx容器,等下会删除,主要是要先拿到nginx的配置文件
5:docker run --name nginxTest -d nginx
6:docker cp nginxTest:/etc/nginx/nginx.conf /conf/nginx.conf (这是把刚刚安装的测试nginx的配置文件拷贝到conf目录下,目录自己定)
1. cp //拷贝命令
2. nginxTest:/etc/nginx/nginx.conf //容器nginxTest nginx配置文件地址
3. /root/nginx/nginx.conf //宿主机用于挂载容器Nginx配置的地址
7:删除nginxtest测试容器
docker stop nginxTest //先停止容器
docker rm nginxTest //再删除容器
8:安装正式nginx容器
docker run -p 80:8080 --name mynginx -v $PWD/www:/www -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/wwwlogs -d nginx
1. -p 80:8080 //将容器的8080端口映射到主机的80端口 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
9:现在就可以到浏览器中访问了
#注意
我都是直接在系统的根目录下操作的所以,上面的目录你要自己看情况而定
总结之所以要先安装并把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.