Docker發布程序那些事


最近使用docker比較頻繁,所以也難免碰到一些坑,在這里記錄一下,給自己寫個筆記

1.docker 1.13.0版本不支持docker stack deploy -c 多個 -c的yml文件合並

  如果發現多個-c不起作用,可以看一下docker的版本是否太久,1.18.0之后是可以的

2.docker stack deploy 后 stack rm stackName后再次啟動可能會提示network已經存在,

  有時docker 不會刪除原有network

3.docker stack deploy 啟動時有時會提示network不存在,啟動失敗,

   需要再次執行docker stack deploy命令

4.提示invaild mount config error等,多半是因為在docker-compose.yml文件中包含volumes ,且里面存在從未知路徑掛載的命令

    可以在yml文件的底部用volume掛載,而不是在service中使用未知路徑,

5. fail to gateway ..ip is in use,一般是network中存在原有ip地址的network未刪掉

   我們可以使用 docker network prune 刪除未執行的network,或者直接刪除對應的network

6. docker-compose up時 nginx提示 Error starting userland proxy: listen tcp 0.0.0.0:8001: bind: address already in use,並且network沒有8001,

  因為nginx出現異常,需要 刪掉nginx 然后重新啟動

Instead of

sudo systemctl restart nginx

I had to use:

sudo pkill -f nginx
sudo systemctl start nginx

 

 

 

---------------- 命令注釋----------------------

重要! stack rm 后 需要執行stack docker network prune 刪除未使用的network
多次使用 stack 命令 (stack rm + stack stack deploy ) 重啟服務時 , stack rm 后 network 可能會未完全刪除,下次使用 stack deploy -c xxx.yml 啟動時會發現部分服務報錯,提示"failed to allocate gateway (10.0.0.1): Address already in use" 這時需要執行stack docker network prune 刪除未使用的network.

 


docker swarm 命令

(Manager節點執行)初始化集群docker swarm init

(Manager節點執行) 查看加入worker節點時,需要在worker節點執行的命令docker swarm join-token worker

 

 


docker stack 命令


啟用集群式服務.
(在docker-compose.yml目錄下執行) sudo docker stack deploy -c docker-compose.yml -c docker-compose.override.yml BI
** 使用docker stack deploy -c docker-compose.yml時yml文件中的build指令無效,需要先執行 docker-compose build 命令! **

 

移除BI 服務集群 docker stack rm BI
當刪除集群時,yml中build的鏡像需要手動刪除

 

 

docker service 服務命令


查看運行中的服務列表 docker service ls

 

查看某個服務(BI_app-download)的運行狀態 docker service ps BI_app-download

 

查看某個服務(BI_app-download)的日志記錄 docker service logs BI_app-download

 

 

創建所需鏡像
(在docker-compose.yml目錄下執行) docker-compose build


docker-compose.yml中含有deploy屬性(stack deploy 啟動需要)時,docker會提示警告,但不影響鏡像生成.


生成的鏡像名稱為docker_foldername格式
如: build app-download 文件夾下的 Dockerfile文件時,生成的鏡像名稱為 "docker_app-download"

 

刪除鏡像 docker rmi imageid
如果修改重新生成鏡像,需要刪除集群-->刪除鏡像-->修改更新項-->docker-compose build-->docker stack deploy

 

docker load image 時提示空間不夠

systemctl/systemd/docker.service 下修改  -grph =/var掛載新的目錄,  然后分別重啟服務 system restart  daemon-reload  ,restart docker service

 

docker file 使用dockerfile 配置容器時區

RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM