四十七、Docker Compose-服务更新
2021-12-31 本文已影响0人
InsaneLoafer
使用--build
进行本地服务更新
- 即使容器已经 up 起来也可以用此参数进行更新检查,且只对修改过的进行重新构建
docker-compose up -d --build
[root@localhost docker_exec]# docker-compose up -d --build
Building flask-demo
Sending build context to Docker daemon 3.072kB
Step 1/8 : FROM python:3.9.5-slim
---> c71955050276
Step 2/8 : RUN pip install flask redis && groupadd -r flask && useradd -r -g flask flask && mkdir /src && chown -R flask:flask /src
---> Using cache
---> 5eb28f57ff7f
Step 3/8 : USER flask
---> Using cache
---> 1fb2e064bf39
Step 4/8 : COPY app.py /src/app.py
---> b7eb4713a1e4
Step 5/8 : WORKDIR /src
---> Running in 22fb8623c248
Removing intermediate container 22fb8623c248
---> 3d0ef2e89d02
Step 6/8 : ENV FLASK_APP=app.py REDIS_HOST=redis
---> Running in e60052314609
Removing intermediate container e60052314609
---> 7e3ea64c34c2
Step 7/8 : EXPOSE 5000
---> Running in daa059946429
Removing intermediate container daa059946429
---> cc362a6c19d1
Step 8/8 : CMD ["flask", "run", "-h", "0.0.0.0"]
---> Running in d56150a80b38
Removing intermediate container d56150a80b38
---> 539aa4f2eafc
Successfully built 539aa4f2eafc
Successfully tagged flask-demo:latest
docker_exec_redis-server_1 is up-to-date
Recreating docker_exec_flask-demo_1 ... done
修改docker compose文件增加镜像
- 增加busybox镜像
version: "3.8"
services:
flask-demo:
build:
context: ./flask
dockerfile: Dockerfile.dev
image: flask-demo:latest
environment:
- REDIS_HOST=redis-server
networks:
- demo-network
ports:
- 8080:5000
redis-server:
image: redis:latest
networks:
- demo-network
busybox:
image: busybox:latest
command: sh -c "while true; do sleep 3600; done"
networks:
- demo-network
networks:
demo-network:
- 使用
docker-compose up -d
进行更新
[root@localhost docker_exec]# docker-compose up -d
Pulling busybox (busybox:latest)...
latest: Pulling from library/busybox
3cb635b06aa2: Pull complete
Digest: sha256:b5cfd4befc119a590ca1a81d6bb0fa1fb19f1fbebd0397f25fae164abe1e8a6a
Status: Downloaded newer image for busybox:latest
docker_exec_redis-server_1 is up-to-date
docker_exec_flask-demo_1 is up-to-date
Creating docker_exec_busybox_1 ... done
进行删除更新
- docker-compose文件中删除busybox镜像,系统提示需要使用
--remove-orphans
来删除不用的容器
[root@localhost docker_exec]# docker-compose up -d
WARNING: Found orphan containers (docker_exec_busybox_1) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up.
docker_exec_redis-server_1 is up-to-date
docker_exec_flask-demo_1 is up-to-date
- 使用
docker-compose up -d --remove-orphans
来进行清理
[root@localhost docker_exec]# docker-compose up -d --remove-orphans
Removing orphan container "docker_exec_busybox_1"
docker_exec_redis-server_1 is up-to-date
docker_exec_flask-demo_1 is up-to-date
当容器使用了volume就会用restart来更新
- 通过加载本地的配置文件来使用容器,如果配置文件修改了就需要重启container
- docker-compose 使用
restart
来重启
[root@localhost docker_exec]# docker-compose restart
Restarting docker_exec_flask-demo_1 ... done
Restarting docker_exec_redis-server_1 ... done