1. ホーム
  2. docker

[解決済み] コンテナが終了するとデータが消えてしまう

2022-03-22 20:19:06

質問

Dockerの 対話型チュートリアル よくある質問 コンテナが終了するとデータが消えてしまうのですが。

ここに書かれているようにDockerをインストールしました。 http://docs.docker.io/en/latest/installation/ubuntulinux ubuntu 13.04で問題なく動作しています。

しかし、終了時にすべてのデータが失われます。

iman@test:~$ sudo docker version
Client version: 0.6.4 
Go version (client): go1.1.2 
Git commit (client): 2f74b1c 
Server version: 0.6.4 
Git commit (server): 2f74b1c 
Go version (server): go1.1.2 
Last stable version: 0.6.4 


iman@test:~$ sudo docker run ubuntu ping
2013/10/25 08:05:47 Unable to locate ping 
iman@test:~$ sudo docker run ubuntu apt-get install ping
Reading package lists... 
Building dependency tree... 
The following NEW packages will be installed: 
  iputils-ping 
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. 
Need to get 56.1 kB of archives. 
After this operation, 143 kB of additional disk space will be used. 
Get:1 http://archive.ubuntu.com/ubuntu/ precise/main iputils-ping amd64 3:20101006-1ubuntu1 [56.1 kB] 
debconf: delaying package configuration, since apt-utils is not installed 
Fetched 56.1 kB in 0s (195 kB/s) 
Selecting previously unselected package iputils-ping. 
(Reading database ... 7545 files and directories currently installed.) 
Unpacking iputils-ping (from .../iputils-ping_3%3a20101006-1ubuntu1_amd64.deb) ... 
Setting up iputils-ping (3:20101006-1ubuntu1) ... 
iman@test:~$ sudo docker run ubuntu ping
2013/10/25 08:06:11 Unable to locate ping 
iman@test:~$ sudo docker run ubuntu touch /home/test
iman@test:~$ sudo docker run ubuntu ls /home/test
ls: cannot access /home/test: No such file or directory 

また、インタラクティブセッションでテストしましたが、同じ結果でした。何か忘れてしまったのでしょうか?

edit: 新規Dockerユーザーにとって重要なこと

mohammed-noureldinさんなどがおっしゃるように、実はこれって NOT a コンテナ出口 . 毎回、新しいコンテナが作成されるだけです。

解決方法は?

必要なのは コミット を作成し、コンテナに変更を加えてから実行します。これを試してみてください。

sudo docker pull ubuntu

sudo docker run ubuntu apt-get install -y ping

次に、このコマンドでコンテナIDを取得します。

sudo docker ps -l

コンテナへの変更をコミットします。

sudo docker commit <container_id> iman/ping 

そして、コンテナを実行します。

sudo docker run iman/ping ping www.google.com

これでうまくいくはずです。