我已经安装了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 容器或您的网站内容上。在执行此操作之前,您需要确保已正确构建容器。
我已经参考过这篇博文和这个堆栈交换站。请在尝试这些步骤之前查看它们。
首先您需要知道您的容器的应用程序是什么。例如nginx
、mysql
、apache2
等。然后运行以下命令:
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 文档的链接关于这个任务。
如果您对此答案有任何疑问或疑问,请发表评论。我感谢您提供反馈来纠正任何误解并改进我的帖子。我可以根据需要更新我的答案。
祝你好运!