docker安裝鏡像后,每個服務都是獨立的容器,容器與容器之間可以說是沒關系,隔離獨立的。
而且虛擬出來的這些容器里面的基本安裝工具都是沒有的,比如vi,vim等等。需要使用,還得安裝處理。
那么我們安裝的容器后我們怎么去修改配置文件。比如nginx我們安裝好了之后,而且安裝在多個容器實現主從后,我們不可能每台服務器的配置文件都去修改一下,這樣就太麻煩了。而且太不好維護了。
好在docker給我們提供了一個技術 -v 掛載覆蓋技術。
原理,就是在我們的服務器上的某個目錄中,上傳好我們的配置信息,然后在啟動運行服務的時候,加上-v 用本地目錄,覆蓋容器中的目錄的配置。那么問題就解決了。
docker run --name mynginx -d -p 80:80 -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/nginx/logs:/var/log/nginx -d docker.io/nginx
這個命令意思:
docker
run --name mynginx #運行名字或ID為myinginx的容器
-d -p 80:80 #對外映射80端口,對內轉發也是80端口。
-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf #用/data/nginx/conf/nginx.conf文件覆蓋容器內的/etc/nginx/nginx.conf文件。
-v /data/nginx/logs:/var/log/nginx -d docker.io/nginx #用/data/nginx/logs目錄覆蓋 /var/log/nginx 目錄。。