# 拉取最新镜像
docker pull image_name:tag
# 停止并删除旧容器
docker stop container_name
docker rm container_name
# 使用新镜像创建新容器
docker run -d --name container_name image_name:tag
# 拉取最新镜像
docker-compose pull
# 重建并重启容器
docker-compose up -d --build
# 使用docker service update
docker service update --image image_name:new_tag service_name
v1.0.0
, v1.1.0
latest
标签# 构建阶段
FROM golang:1.16 AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp .
# 生产阶段
FROM alpine:latest
WORKDIR /root/
COPY --from=builder /app/myapp .
CMD ["./myapp"]
docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--interval 30
# 示例GitLab CI配置
stages:
- build
- deploy
build:
stage: build
script:
- docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA .
- docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA
deploy:
stage: deploy
script:
- docker pull $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA
- docker stop myapp || true
- docker rm myapp || true
- docker run -d --name myapp $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA
docker stop container_name
docker run -d --name container_name image_name:previous_tag
docker-compose pull image_name:previous_tag
docker-compose up -d
docker service update --rollback service_name
# 查看镜像历史
docker history image_name
# 查看容器变更
docker diff container_name
通过以上策略和工具,您可以有效地管理Docker容器的更新和版本控制,确保系统稳定性和可维护性。