当在任务定义中添加了两个容器并只推送其中一个进行服务更新时的行为
的是找到解决方案
在任务定义中注册两个容器映像,并只更新其中一个映像,以确认服务更新时的动作。
结论
无论双方都会进行更新
事实上,即使没有进行图像更新也会重新部署,所以这是理所当然的。
前期的状态
登录到ECS集群的EC2实例上并执行docker ps命令的结果是什么。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5d66e321abf7 *******.dkr.ecr.ap-northeast-1.amazonaws.com/my-nodejs "node /src/bin/www &" 43 seconds ago Up 41 seconds 0.0.0.0:32771->3000/tcp ecs-p-test-node-ec2-12-my-nodejs-a0c3fdc992f6b3f47900
096f927e65a8 ******.dkr.ecr.ap-northeast-1.amazonaws.com/xray "/usr/bin/xray -b 0.…" 43 seconds ago Up 42 seconds 0.0.0.0:32771->2000/udp ecs-p-test-node-ec2-12-xray-deamon-fcaed0fd81cb81d0cd01
b32773c2cb96 amazon/amazon-ecs-agent:latest "/agent" 10 minutes ago Up 10 minutes ecs-agent
任务定义 (Ren wu ding yi)
"image": "******.dkr.ecr.ap-northeast-1.amazonaws.com/xray",
"image": "******.dkr.ecr.ap-northeast-1.amazonaws.com/my-nodejs",
欧共体


步驟
我的Node.js推送
$(aws ecr get-login --no-include-email --region ap-northeast-1)
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /Users/atsum/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
$ docker build -t my-nodejs .
Sending build context to Docker daemon 53.87MB
Step 1/6 : FROM node
---> 4e4c445311e6
Step 2/6 : RUN npm config set strict-ssl false;cd /src; npm install express;npm install aws-sdk;npm install aws-xray-sdk
---> Using cache
---> e1119dabe9de
Step 3/6 : COPY ./sampleapp /src
---> Using cache
---> dca5910601b9
Step 4/6 : RUN touch a.txt
---> Running in d21560d6bf43
Removing intermediate container d21560d6bf43
---> 3b2e08fee0a8
Step 5/6 : EXPOSE 3000
---> Running in 27d0f44837b2
Removing intermediate container 27d0f44837b2
---> f0ad9689a5d6
Step 6/6 : CMD ["node", "/src/bin/www", "&"]
---> Running in e9a308a9f0d2
Removing intermediate container e9a308a9f0d2
---> ba1fb6350c96
Successfully built ba1fb6350c96
Successfully tagged my-nodejs:latest
$ docker tag my-nodejs:latest ******.dkr.ecr.ap-northeast-1.amazonaws.com/my-nodejs:latest
$ docker push ******.dkr.ecr.ap-northeast-1.amazonaws.com/my-nodejs:latest
The push refers to repository [******.dkr.ecr.ap-northeast-1.amazonaws.com/my-nodejs]
f47635bb058a: Pushed
8ff354860706: Layer already exists
0fa739427d72: Layer already exists
91072b192927: Layer already exists
a6611280a43a: Layer already exists
c4d021050ecd: Layer already exists
9978d084fd77: Layer already exists
1191b3f5862a: Layer already exists
08a01612ffca: Layer already exists
8bb25f9cdc41: Layer already exists
f715ed19c28b: Layer already exists
latest: digest: sha256:4eb1b6e76da52b6f078f7098922d5893a00ca701f141d66d47dc4a116b7ac171 size: 2637
图像已更新

更新服务

点击“强制检查”复选框,以确保在进行新部署时指定最新修订版本,并执行服务更新。

启动新任务

确认
任务将在新的任务定义中启动。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
537811dea3fd ******.dkr.ecr.ap-northeast-1.amazonaws.com/my-nodejs "node /src/bin/www &" About a minute ago Up About a minute 0.0.0.0:32772->3000/tcp ecs-p-test-node-ec2-12-my-nodejs-b8dcc0b588d5e0e67600
7baf08f94a2e ******.dkr.ecr.ap-northeast-1.amazonaws.com/xray "/usr/bin/xray -b 0.…" About a minute ago Up About a minute 0.0.0.0:32772->2000/udp ecs-p-test-node-ec2-12-xray-deamon-9ab1b4b2beb8fd919701
5d66e321abf7 b13bb187ade5 "node /src/bin/www &" 25 minutes ago Up 25 minutes 0.0.0.0:32771->3000/tcp ecs-p-test-node-ec2-12-my-nodejs-a0c3fdc992f6b3f47900
096f927e65a8 ******.dkr.ecr.ap-northeast-1.amazonaws.com/xray "/usr/bin/xray -b 0.…" 25 minutes ago Up 25 minutes 0.0.0.0:32771->2000/udp ecs-p-test-node-ec2-12-xray-deamon-fcaed0fd81cb81d0cd01
b32773c2cb96 amazon/amazon-ecs-agent:latest "/agent" 35 minutes ago Up 35 minutes ecs-agent

一段时间后,旧的任务定义的任务将停止。
[ec2-user@ip-172-31-14-134 ~]$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
537811dea3fd ******.dkr.ecr.ap-northeast-1.amazonaws.com/my-nodejs "node /src/bin/www &" 7 minutes ago Up 7 minutes 0.0.0.0:32772->3000/tcp ecs-p-test-node-ec2-12-my-nodejs-b8dcc0b588d5e0e67600
7baf08f94a2e ******.dkr.ecr.ap-northeast-1.amazonaws.com/xray "/usr/bin/xray -b 0.…" 7 minutes ago Up 7 minutes 0.0.0.0:32772->2000/udp ecs-p-test-node-ec2-12-xray-deamon-9ab1b4b2beb8fd919701
b32773c2cb96 amazon/amazon-ecs-agent:latest "/agent" 41 minutes ago Up 41 minutes ecs-agent
约定事项
投稿的内容是我个人的意见,不代表所属公司或部门的观点。