docker stack 簡單部署

2021-10-21 20:54:52 字數 2243 閱讀 4184

建立dockerfile檔案

copy 好像只支援先對路徑《當前相對路徑,目錄絕對路徑》

from centos

copy test_folder/ /home/test_folder

copy test_file.sh /home/

執行命令

docker build -t custom/middleground .
「custom/middleground」 是映象名稱,自己定義任意名稱,例如test_image

docker build -t test_image .
「.」 指明dockerfile檔案是在當前目錄

執行命令

存在 「custom/middleground」 說明建立成功

開始執行容器的時候要啟動自己的應用,就寫在這個指令碼裡面了

vi start.sh
內容:

#!/bin/bash

#執行自己的應用

nohup ./test &

# 下面這句是作用是:因為上面我是用nohup 執行的,docker 容器執行的時候,如果這個cmd執行完成後,

# 指令碼就會退出,docker會把當前映象stop掉 ,你會發現docker 啟動容器,一會兒容器就會自己退出,

# 加下面的命令就,防止指令碼退出了

tail -f /dev/null

建立檔案

vim stack.yml
內容:

version: '3.1'

services:

service:

image: custom/middleground # 指定上面的映象名稱

command: /home/start.sh # 開始映象的時候執行指令碼

ports: # 容器對外暴露的埠

- 18011:18001

- 18013:8889

- 18012:18002

退出編輯,執行

docker stack deploy -c stack.yml middleground
「middleground」 是容器的名稱,可以自己改

「stack.yml」 是剛配置的檔名

終端執行:

發現建立好了

終端執行

docker ps
如果發現容器執行一會兒就退出,是因為start.sh 這個指令碼直接執行完成就退出了。重新看卡第2步配置。

docker ps 命名看不到 這個映象對外暴露的介面的,用netstat 是看到是有的

[root@cdh1003 build_image]# netstat -apn |grep 18011

tcp6 0 0 :::18011 :::* listen 23640/dockerd

或者使用

# docker service ls
id                  name                   mode                replicas            image                        ports

3mf15ztm0sa7 middleground_service replicated 1/1 custom/middleground:latest *:18011-18012->18001-18002/tcp, *:18013->8889/tcp

結束

使用docker stack部署微服務遇到的坑

warning ipv4 forwarding is disabled.networking will not work.在使用docker stack構建啟動微服務的時候,所有的從節點機器專案全部啟動失敗,錯誤資訊是服務無法註冊到遠端的nacos伺服器上,但是我單獨在 從節點上又可以ping通遠端...

docker stack相關命令

部署專案命令 docker stack c docker compose.yml 服務名稱 顯示stack列表 命令 docker stack ls 可以看到名稱叫ormis service的stack中存在3個服務 列出stack中的任務 命令 docker stack ps stack名稱 通過...

postgrepsql簡單部署

2 解壓 tar xvf postgresql 10.0.tar.bz2 3 安裝 cd postgresql 10.0 configure prefix crmp sgwadm work zhangtaoa pg pghome make make install 4 建立data目錄 mkdir ...