共计 1463 个字符,预计需要花费 4 分钟才能阅读完成。
docker 容器
容器是通过 image 创立的过程。
镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的 类 和 实例 一样,镜像是动态的定义,容器是镜像运行时的实体。容器能够被创立、启动、进行、删除、暂停等。
新建并启动容器
上面的命令的含意:通过 Ubuntu:18.04 这个 image 创立一个容器并运行 /bin/echo ‘Hello world’,实现后进行该容器。
$ docker run ubuntu:18.04 /bin/echo 'Hello world'
Hello world
应用 docker run 命令,后盾实际上执行的内容为:
- 查看本地是否存在指定的镜像,不存在就从私有仓库下载
- 利用镜像创立并启动一个容器
- 调配一个文件系统,并在只读的镜像层里面挂载一层可读写层(前面会学)
- 从宿主主机配置的网桥接口中桥接一个虚构接口到容器中去(前面会学)
- 从地址池配置一个 ip 地址给容器(前面会学)
- 执行用户指定的应用程序
- 执行结束后容器被终止
下面的示例执行完当前会终止,然而个别咱们在应用一个提供服务的容器的时候,不想让它进行,那么能够应用 -d 参数,使容器放弃在后盾运行。然而须要留神—— 容器是否会短暂运行,是和 docker run 指定的命令无关,和 -d 参数无关
如下命令执行完后,容器仍然会进行
$ docker run -d ubuntu
而如下命令执行完后,容器则在后盾放弃运行
$ docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"
进入容器
attach 命令
$ docker run -dit ubuntu
ffff9516c6151ef3b436df1bccc70ba9da2d0f57bbec5afe19353fe481e12702
$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ffff9516c615 ubuntu "/bin/bash" 7 seconds ago Up 6 seconds elegant_hypatia
$ docker attach ffff9516c615
root@ffff9516c615:/#
留神:如果从这个 stdin 中 exit,会导致容器的进行。
exec 命令 (举荐应用,个别配合 -it 参数)
$ docker run -dit ubuntu
15fc4d97c1b4ea25d76e568fb4e695d5b48d7f13ebbb6d718a80b86a4764a005
// 只用 -i 参数时,因为没有调配伪终端,界面没有咱们相熟的 Linux 命令提示符,但命令执行后果依然能够返回。$ docker exec -i 15fc4d97c1b4ea25 bash
ls
bin
boot
dev
etc
...
// 当 -i -t 参数一起应用时,则能够看到咱们相熟的 Linux 命令提示符。$ docker exec -it 15fc4d97c1b4ea25 bash
root@15fc4d97c1b4:/#
留神:如果从这个 stdin 中 exit,不会导致容器的进行。
容器常用命令
- docker container ls –all 查看以后零碎中的所有(运行中、已进行的)容器
- docker container start XXX 把曾经进行的 XXX 容器启动
- docker container stop XXX 把运行总的 XXX 容器进行
- docker container restart XXX 重新启动运行中的 XXX 容器
- docker container prune 删除所有处于进行状态的容器
正文完