关于docker:docker-学习笔记第三集container

5次阅读

共计 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 命令,后盾实际上执行的内容为:

  1. 查看本地是否存在指定的镜像,不存在就从私有仓库下载
  2. 利用镜像创立并启动一个容器
  3. 调配一个文件系统,并在只读的镜像层里面挂载一层可读写层(前面会学)
  4. 从宿主主机配置的网桥接口中桥接一个虚构接口到容器中去(前面会学)
  5. 从地址池配置一个 ip 地址给容器(前面会学)
  6. 执行用户指定的应用程序
  7. 执行结束后容器被终止

下面的示例执行完当前会终止,然而个别咱们在应用一个提供服务的容器的时候,不想让它进行,那么能够应用 -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,不会导致容器的进行。

容器常用命令

  1. docker container ls –all 查看以后零碎中的所有(运行中、已进行的)容器
  2. docker container start XXX 把曾经进行的 XXX 容器启动
  3. docker container stop XXX 把运行总的 XXX 容器进行
  4. docker container restart XXX 重新启动运行中的 XXX 容器
  5. docker container prune 删除所有处于进行状态的容器

正文完
 0