知乎專欄 | 多維度架構 | | | 微信號 netkiller-ebook | | | QQ群:128659835 請註明“讀者” |
iMac:config neo$ mvn docker:build [INFO] Scanning for projects... [INFO] [INFO] ------------------------< cn.netkiller:config >------------------------- [INFO] Building config 0.0.1-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- docker-maven-plugin:1.2.2:build (default-cli) @ config --- [INFO] Using authentication suppliers: [ConfigFileRegistryAuthSupplier, FixedRegistryAuthSupplier] [INFO] Copying /Users/neo/workspace/Microservice/config/target/config-0.0.1-SNAPSHOT.jar -> /Users/neo/workspace/Microservice/config/target/docker/srv/config-0.0.1-SNAPSHOT.jar [INFO] Building image netkiller/config Step 1/7 : FROM openjdk ---> b2324c52d969 Step 2/7 : WORKDIR /srv ---> Using cache ---> f7c1730935c6 Step 3/7 : ADD /srv/config-0.0.1-SNAPSHOT.jar /srv/ ---> Using cache ---> 8b5a053550ba Step 4/7 : EXPOSE 8888 ---> Running in 7f4e35b3564f Removing intermediate container 7f4e35b3564f ---> a968ea58ba64 Step 5/7 : ENTRYPOINT ["java", "-jar", "-Djava.security.egd=file:/dev/./urandom", "/srv/config-0.0.1-SNAPSHOT.jar"] ---> Running in 6b110b5d16b7 Removing intermediate container 6b110b5d16b7 ---> a8ab10c1c186 Step 6/7 : CMD ["java", "-version"] ---> Running in 4f2dc6e08404 Removing intermediate container 4f2dc6e08404 ---> a74bbf7b6c30 Step 7/7 : VOLUME /tmp ---> Running in 0a3836ea768f Removing intermediate container 0a3836ea768f ---> 5e13d81a9dea ProgressMessage{id=null, status=null, stream=null, error=null, progress=null, progressDetail=null} Successfully built 5e13d81a9dea Successfully tagged netkiller/config:latest [INFO] Built netkiller/config [INFO] Tagging netkiller/config with 0.0.1-SNAPSHOT [INFO] Tagging netkiller/config with latest [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 20.516 s [INFO] Finished at: 2020-09-20T21:49:28+08:00 [INFO] ------------------------------------------------------------------------
初始化 Swarm
iMac:springboot neo$ docker swarm init Swarm initialized: current node (qvqez97c8ja014ktmroy9sw47) is now a manager. To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN-1-49w6mcdjvj9nhb1go4wiazygupvj6qmjy7mgdb7x5bzqspldss-6yfvnij63it1qbs2nwvqw6xv0 192.168.65.3:2377 To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
創建 docker-compose.yml 檔案
version: '3.8' services: config: image: netkiller/config:latest ports: - "8888" volumes: - /tmp/config:/tmp deploy: replicas: 1 restart_policy: condition: on-failure resources: limits: cpus: "0.1" memory: 50M
部署服務
iMac:springboot neo$ docker stack deploy -c docker-compose.yml springboot Creating network springboot_default Creating service springboot_config
查看部署情況
iMac:springboot neo$ docker stack ls NAME SERVICES ORCHESTRATOR springboot 1 Swarm iMac:springboot neo$ docker stack services springboot ID NAME MODE REPLICAS IMAGE PORTS viavpkzk6lvo springboot_config replicated 0/1 netkiller/config:latest *:30001->8888/tcp
查看服務運行狀態
iMac:springboot neo$ docker stack ps springboot ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS mr30ujsdbti4 springboot_config.1 netkiller/config:latest docker-desktop Running Preparing 4 minutes ago