Docker-compose发布应用及更新应用

Docker-compose发布应用及更新应用

1:环境

Docker版本:20.10.12
服务器:CentOS 7.9
Docker-compose版本:v2.2.3

2:所需镜像

原始镜像:
nginx:latest
redis:latest

替换镜像
nginx:alpine
redis:alpine

3:配置并启动测试服务

[root@virtual_host service]# ls
service.yml
[root@virtual_host service]# ls -a
.  ..  .env  service.yml
[root@virtual_host service]# cat .env 
nginx=alpine
redis=alpine
[root@virtual_host service]# cat service.yml 
version: '3.5'

services:
  nginx:
    restart: always
    image: nginx:${nginx}   # 这里会去同目录下.env获取变量值
    ports:
      - 80:80
  redis:
    restart: always
    image: redis:${redis}    # 同上
    ports:
      - 6379:6379
[root@virtual_host service]# docker-compose -f service.yml up -d
[+] Running 3/3
 ⠿ Network service_default    Created                                                                                                0.0s
 ⠿ Container service-redis-1  Started                                                                                                0.8s
 ⠿ Container service-nginx-1  Started                                                                                                0.7s
[root@virtual_host service]# docker-compose -f service.yml ps
NAME                COMMAND                  SERVICE             STATUS              PORTS
service-nginx-1     "/docker-entrypoint.…"   nginx               running             0.0.0.0:80->80/tcp, :::80->80/tcp
service-redis-1     "docker-entrypoint.s…"   redis               running             0.0.0.0:6379->6379/tcp, :::6379->6379/tcp

# 已启动
# 测试nginx
[root@virtual_host service]# curl 127.0.0.1 -I
HTTP/1.1 200 OK
Server: nginx/1.21.6
Date: Tue, 28 Dec 2021 05:20:10 GMT
Content-Type: text/html
Content-Length: 615
Last-Modified: Tue, 25 Jan 2022 15:26:06 GMT
Connection: keep-alive
ETag: "61f0168e-267"
Accept-Ranges: bytes
# 测试redis
[root@virtual_host service]# redis-cli 
127.0.0.1:6379> 

4:替换镜像重新启动服务

# 更改变量名tag然后up -d即可
[root@virtual_host service]# cat .env 
nginx=latest
redis=latest
[root@virtual_host service]# docker-compose -f service.yml up -d
[+] Running 2/2
 ⠿ Container service-redis-1  Started                                                                                                0.7s
 ⠿ Container service-nginx-1  Started                                                                                                0.7s
 
 [root@virtual_host service]# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                                       NAMES
0c91b7e59b92   redis:latest   "docker-entrypoint.s…"   59 seconds ago   Up 58 seconds   0.0.0.0:6379->6379/tcp, :::6379->6379/tcp   service-redis-1
e2a11bd72d1a   nginx:latest   "/docker-entrypoint.…"   59 seconds ago   Up 58 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp           service-nginx-1

# 看到镜像已经换成了 latest

# 我们可以使用 watch来实时查看 docker ps
Every 2.0s: docker ps                                                                                             Tue Dec 28 00:26:15 2021

CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS         PORTS                                       NAMES
c826358b0648   redis:alpine   "docker-entrypoint.s…"   2 minutes ago   Up 2 minutes   0.0.0.0:6379->6379/tcp, :::6379->6379/tcp   service-
redis-1
b506637e4794   nginx:alpine   "/docker-entrypoint.…"   2 minutes ago   Up 2 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp		  service-
nginx-1

# 更改其中一个服务的镜像其他的服务也是不影响的

Every 2.0s: docker ps                                                                                             Tue Dec 28 00:27:08 2021

CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                                       NAMES
32a3fae3eb4a   nginx:latest   "/docker-entrypoint.…"   18 seconds ago   Up 17 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp           servic
e-nginx-1
c826358b0648   redis:alpine   "docker-entrypoint.s…"   2 minutes ago    Up 2 minutes    0.0.0.0:6379->6379/tcp, :::6379->6379/tcp   servic
e-redis-1

posted @ 2022-03-03 18:34  Layzer  阅读(360)  评论(0编辑  收藏  举报