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.