使用--build进行本地服务更新
即使容器已经 up 起来也可以用此参数进行更新检查,且只对修改过的进行重新构建
docker-compose up -d --build[root@localhost docker_exec]# docker-compose up -d --buildBuilding flask-demoSending build context to Docker daemon 3.072kBStep 1/8 : FROM python:3.9.5-slim---> c71955050276Step 2/8 : RUN pip install flask redis && groupadd -r flask && useradd -r -g flask flask && mkdir /src && chown -R flask:flask /src---> Using cache---> 5eb28f57ff7fStep 3/8 : USER flask---> Using cache---> 1fb2e064bf39Step 4/8 : COPY app.py /src/app.py---> b7eb4713a1e4Step 5/8 : WORKDIR /src---> Running in 22fb8623c248Removing intermediate container 22fb8623c248---> 3d0ef2e89d02Step 6/8 : ENV FLASK_APP=app.py REDIS_HOST=redis---> Running in e60052314609Removing intermediate container e60052314609---> 7e3ea64c34c2Step 7/8 : EXPOSE 5000---> Running in daa059946429Removing intermediate container daa059946429---> cc362a6c19d1Step 8/8 : CMD ["flask", "run", "-h", "0.0.0.0"]---> Running in d56150a80b38Removing intermediate container d56150a80b38---> 539aa4f2eafcSuccessfully built 539aa4f2eafcSuccessfully tagged flask-demo:latestdocker_exec_redis-server_1 is up-to-dateRecreating docker_exec_flask-demo_1 ... done
修改docker compose文件增加镜像
增加busybox镜像
version: "3.8"services:flask-demo:build:context: ./flaskdockerfile: Dockerfile.devimage: flask-demo:latestenvironment:- REDIS_HOST=redis-servernetworks:- demo-networkports:- 8080:5000redis-server:image: redis:latestnetworks:- demo-networkbusybox:image: busybox:latestcommand: sh -c "while true; do sleep 3600; done"networks:- demo-networknetworks:demo-network:
使用
docker-compose up -d进行更新[root@localhost docker_exec]# docker-compose up -dPulling busybox (busybox:latest)...latest: Pulling from library/busybox3cb635b06aa2: Pull completeDigest: sha256:b5cfd4befc119a590ca1a81d6bb0fa1fb19f1fbebd0397f25fae164abe1e8a6aStatus: Downloaded newer image for busybox:latestdocker_exec_redis-server_1 is up-to-datedocker_exec_flask-demo_1 is up-to-dateCreating docker_exec_busybox_1 ... done
进行删除更新
docker-compose文件中删除busybox镜像,系统提示需要使用
--remove-orphans来删除不用的容器[root@localhost docker_exec]# docker-compose up -dWARNING: 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-datedocker_exec_flask-demo_1 is up-to-date
使用
docker-compose up -d --remove-orphans来进行清理[root@localhost docker_exec]# docker-compose up -d --remove-orphansRemoving orphan container "docker_exec_busybox_1"docker_exec_redis-server_1 is up-to-datedocker_exec_flask-demo_1 is up-to-date
当容器使用了volume就会用restart来更新
通过加载本地的配置文件来使用容器,如果配置文件修改了就需要重启container
- docker-compose 使用
restart来重启[root@localhost docker_exec]# docker-compose restartRestarting docker_exec_flask-demo_1 ... doneRestarting docker_exec_redis-server_1 ... done
