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コンテナまたはWebサイトのコンテンツに保存されません。これを行う前に、コンテナが正しく構築されていることを確認する必要があります。

私はすでに言及しましたこのブログ投稿このスタック交換。試す前に、次の手順を確認してください。

まず、コンテナのアプリケーションが何であるかを知る必要があります。たとえば、nginxなどmysqlapache2次に、次のコマンドを実行します。

docker pull [application]

これにより、最新バージョンのアプリケーションがインポートされます。リンクされたブログ投稿では、nginx次の手順を実行して利用可能なDockerイメージを見つけるために特定のバージョンが必要です。

docker images | grep nginx 
docker pull nginx:alpine   

該当する場合は、変更できるようにnginxソフトウェアを目的のnginxバージョンに置き換えてください。alpine

更新されたソフトウェアイメージをインポートしたら、次のコマンドを実行してコンテナを更新できます。

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ドキュメントへのリンク今回のミッションについて。

この回答について質問や質問がある場合は、コメントを残してください。誤解を解決し、投稿を改善するためにフィードバックを送信していただきありがとうございます。必要に応じて回答を更新できます。

頑張ってください!

関連情報