Docker Hubから取得したイメージは自動的には更新されません。特定のイメージを利用してコンテナを作成した場合、初回は最新のイメージをDocker Hubから取得しますが、二回目以降はタグがlatestであってもローカルにあるイメージが利用されます。
ローカルのイメージを更新するには、pullコマンドを利用します。
$ docker pull <リポジトリ名>[:<タグ名>]
Docker Hubから取得したイメージは自動的には更新されません。特定のイメージを利用してコンテナを作成した場合、初回は最新のイメージをDocker Hubから取得しますが、二回目以降はタグがlatestであってもローカルにあるイメージが利用されます。
ローカルのイメージを更新するには、pullコマンドを利用します。
$ docker pull <リポジトリ名>[:<タグ名>]
まず、コンテナからイメージを作成します。
$ docker commit <コンテナ名> <イメージ名>
イメージをTARファイルに保存します。
$ docker save <イメージ名> -o <ファイル名>
CentOS環境において、誤ってDockerのコンテナを起動したまま、yumでdocker-ceパッケージをアップデートしてしまいました。
その後、再度コンテナを起動しようとしたのですが、次のエラーにより起動ができない状態になりました。
$ docker start postfix
Error response from daemon: OCI runtime create failed: container with id exists: d21dd44a4cd471de93a5869922288143d7a1e2395f90b9bee9dc4ca5476524cc: unknown
Error: failed to start containers: postfix
次のフォルダにある、コンテナ名を持つフォルダを削除することで、起動が可能になりました。
/run/docker/runtime-runc/moby
$ docker cp <ContainerId>:/path/to/file/in/container /target/path/in/host
$ docker exec -it <ContainerId> bash
$ docker logs <ContainerId>