如何更新 docker 容器?

如何更新 docker 容器?

我已经安装了docker并且里面有一个容器。

$ docker version
Client:
 Version:           18.06.1-ce
 API version:       1.38
 Go version:        go1.10.3
 Git commit:        e68fc7a
 Built:             Sun, 16 Sep 2018 13:21:33 +1000
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          18.06.1-ce
  API version:      1.38 (minimum version 1.12)
  Go version:       go1.10.3
  Git commit:       e68fc7a
  Built:            Sun Sep 16 03:21:33 2018
  OS/Arch:          linux/amd64
  Experimental:     false


$ docker info
Containers: 1
 Running: 0
 Paused: 0
 Stopped: 1
Images: 2
Server Version: 18.06.1-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 
runc version: N/A 
init version: v0.18.0 
Security Options:
 apparmor
 seccomp
  Profile: default
Kernel Version: 4.18.0-3-amd64
Operating System: Debian GNU/Linux buster/sid
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 7.659GiB
Name: debian
ID: 
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

WARNING: No swap limit support

我忘记了如何更新容器。

编辑:我的意思是更新图像。

答案1

更新容器镜像

如果您需要更新容器的映像/软件,只要您的 Docker 容器不存储应用程序数据,这相当简单。例如,您的生产数据库不会保存在 docker 容器或您的网站内容上。在执行此操作之前,您需要确保已正确构建容器。

我已经参考过这篇博文和这个堆栈交换站。请在尝试这些步骤之前查看它们。

首先您需要知道您的容器的应用程序是什么。例如nginxmysqlapache2等。然后运行以下命令:

docker pull [application]

这将拉取该应用程序的最新版本。在链接的博客文章中,他们想要一个特定版本,nginx以便您可以通过执行以下操作查找可用的 docker 映像:

docker images | grep nginx 
docker pull nginx:alpine   

替换nginx您的软件以及alpine他们想要的 nginx 版本,以便您可以在适用时更改它。

拉取更新的软件映像后,您可以运行以下命令来更新容器:

docker stop [CONTAINER]
docker rm [SAME CONTAINER AS BEFORE]
docker run --name [NEW CONTAINER NAME] \
  [OPTIONS] \
  [CONFIGURATIONS] \
  [ADDITIONAL SETTINGS] \
  -d [SOFTWARE, e.g. nginx or mysql]

现在您应该有一个使用新软件设置的新容器,并使用您想要的选项运行。在尝试任何这些命令之前,请务必阅读我提供的所有链接。同样,如果您将生产数据保存在容器内,则无法执行这些步骤。您必须备份数据并考虑创建一个容器可以安装并访问的卷。

我还将包括一个相关 Docker 文档的链接关于这个任务。

如果您对此答案有任何疑问或疑问,请发表评论。我感谢您提供反馈来纠正任何误解并改进我的帖子。我可以根据需要更新我的答案。

祝你好运!

相关内容