我已经安装了 Docker 并使用以下命令运行了一些 Ubuntu 映像:
sudo docker run ubuntu
我想在上面创建一些文本文件,并在下次运行相同的图像时找到它。如何做到这一点?
更新。
附加到 docker 时遇到问题。我正在运行 docker
docker ps -a
aef01293fdc9 ubuntu "/bin/bash" 6 hours ago Up 6 hours priceless_ramanujan
既然是Up
模式,我想我不需要执行命令:
docker start priceless_ramanujan
所以,我运行命令 attach
docker attach priceless_ramanujan
并且在命令不返回时没有任何输出。
为什么我无法进入容器的 bash?
简单的例子:
$ docker run -it ubuntu
root@4d5643e8c1a8:/# echo "test" > test.txt
root@4d5643e8c1a8:/# cat test.txt
test
root@4d5643e8c1a8:/# exit
exit
$ docker run -it ubuntu
root@cdb44750bffc:/# cat test.txt
cat: test.txt: No such file or directory
root@cdb44750bffc:/#
image_name
此命令创建并启动一个新的基础上,提供的容器image_name
。如果没有为容器设置名称,则由 docker 生成并分配一个随机名称。在上面的示例中,2 个容器是基于ubuntu
.
与docker ps -a
我们可以看到,modest_jennings
并optimistic_leakey
创建了随机的名字:
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cdb44750bffc ubuntu "/bin/bash" About a minute ago Exited (1) 4 seconds ago optimistic_leakey
4d5643e8c1a8 ubuntu "/bin/bash" 2 minutes ago Exited (0) 2 minutes ago modest_jennings
cat test.txt
第二次失败,因为文件不存在。容器从一个“干净”的ubuntu
镜像开始。
实际上,我们只在test.txt
内部创建modest_jennings
。
container_name
此命令启动已停止的容器。所以,在我们的例子中,文件仍然存在:
$ docker start modest_jennings
modest_jennings
$ docker attach modest_jennings
root@4d5643e8c1a8:/# cat test.txt
test
root@4d5643e8c1a8:/#
container_name
image_name
这个命令是创建一个新的镜像,以便您以后可以使用它并基于该镜像运行容器。继续我们的例子......
$ docker commit modest_jennings my_ubuntu
sha256:a4357f37153ac0b94e37315595f1a3b540538283adc3721df4d4e3b39bf8334f
$ docker run -it my_ubuntu
root@2e38616d532a:/# cat test.txt
test
root@2e38616d532a:/#
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句