一.拉取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.