发布时间:2020-03-23 17:50:40来源:阅读:
一般情况下,退出一个Docker容器后它仍然会存在。这允许你再次运行容器,查看其文件系统等。不过,有时候你可能想运行容器后马上自动删除。例如想执行一个命令或者查看一个文件。Docker为此提供了一个–rm命令行参数来实现它。
docker run --rm ubuntu cat /etc/hosts
这会从ubuntu镜像创建一个容器,显示/etc/hosts的内容,然后退出后立即销毁容器。
这避免了你只是想做下实验后再清理容器的麻烦。
注意:–rm选项在与-d(–detach)选项时失效。
当使用–rm选项时,Docker被删除后也会删除与之关系的volumes。这与执行docker rm -v my-container类似。只删除未命名的volumes。
例如,运行docker run -it –rm -v /etc -v logs:/var/log centos /bin/produce_some_logs,/etc数据卷会被删除,/var/log则不会。
docker run --restart=always -d <container>
默认情况下,当Docker守护进程重启时(如主机系统重启),容器不会跟着重启。Docker为容器提供了一个重启策略,选项为–restart=always。使用此选项一旦Docker守护里程重启后,容器也会重启。
不过,如果是手动停止的容器(如docker stop
默认下,使用docker run创建容器时会分配一个随机的名称,如small_roentgen或modest_dubinsky。这种名称对识别容器不会有任何帮助。我们可以通过–name选项来指定一个有意义的名称。
docker run --name my-ubuntu ubuntu:14.04
名称必须是唯一的。如果指定了一个与正在运行容器的名称一样,docker会报错并且不会创建任何容器。
为了让容器在后台运行,我们可以在生成容器时使用-d选项。
docker run -d busybox top
Docker 数据卷(volume)其实是一个文件或者目录,它在容器生命周期结束后还会保留。我们可以挂载宿主机的一个文件或目录作为Docker的数据卷。
使用-v选项添加一个数据卷:
docker run -d -v "/data" awesome/app bootstrap.sh
这会创建一个数据卷并把它挂载到容器的/data目录。
挂载宿主文件或目录到容器:
docker run -d -v "/home/foo/data:/data" awesome/app bootstrap.sh
这会把宿主的/home/foo/data目录挂载到容器里的/data目录。这个操作就会Linux的mount命令。因此这个挂载只存在于容器的生命周期。更改宿主/home/foo/data的文件会立即影响到容器的/data对应的文件里,因为它们是指向硬盘上的同一个文件。
可以在创建数据卷时指定一个名称,而不只是主机目录路径。
docker run -d -v "my-volume:/data" awesome/app bootstrap.sh
命名的数据卷创建后,可以通过此名称来与其它容器共享。
使用-it选项来以交互方式运行容器。
$ docker run -it ubuntu:14.04 bash root@8ef2356d919a:/# echo hi hi root@8ef2356d919a:/#
-i选项保持STDIN打开,而-t则分配一个伪TTY。
我们可以使用如下命令来登录正在运行的容器
docker exec -it jovial_morse bash
上一篇:投影仪在笔记本上切换的快捷键
2020-05-22
普通笔记本和上网本的区别
SureHA服务全部无法启动的解决方法
Lenovo笔记本常见光驱厚度
使用一键恢复备份数据后硬盘最后一个分区空间容量变小
卸载Adobe Flash Player 时报错问题的处理方案
假如你成为了《西部狂徒》中的牛仔,要怎么做才能维护西部世界的和平?
使用awk合并空行
logstash解析naxsi日志的问题
python3调用微软js引擎ChakraCore的方法