Hello World

Docker 允许你在容器内运行应用程序, 使用 docker run 命令来在容器内运行一个应用程序。
输出Hello world
图片.png
各个参数解析:

  • docker: Docker 的二进制执行文件。
  • run: 与前面的 docker 组合来运行一个容器。
  • ubuntu:18.04 指定要运行的镜像,Docker 首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。
  • /bin/echo “Hello world”: 在启动的容器里执行的命令

以上命令完整的意思可以解释为:Docker 以 ubuntu18.04 镜像创建一个新容器,然后在容器里执行 bin/echo “Hello world”,然后输出结果。

运行交互式的容器

我们通过 docker 的两个参数 -i -t,让 docker 运行的容器实现“对话”的能力:
图片.png
各个参数解析:

  • -t: 在新容器内指定一个伪终端或终端。
  • -i: 允许你对容器内的标准输入 (STDIN) 进行交互。

注意第二行 root@f11b6583a3e6:/#,此时我们已进入一个 ubuntu18.04 系统的容器
我们尝试在容器中运行命令 cat /proc/versionls分别查看当前系统的版本信息和当前目录下的文件列表
图片.png
我们可以通过运行 exit 命令或者使用 CTRL+D 来退出容器。
图片.png

图片.png注意第三行中 jianglong@jianglong-virtual-machine:~# 表明我们已经退出了当期的容器,返回到当前的主机中。

启动容器(后台模式)

使用以下命令创建一个以进程方式运行的容器
图片.png
在输出中,我们没有看到期望的 “hello world”,而是一串长字符
这个长字符串叫做容器 ID,对每个容器来说都是唯一的,我们可以通过容器 ID 来查看对应的容器发生了什么。
首先,我们需要确认容器有在运行,可以通过 docker ps 来查看:
图片.png
输出详情介绍:
CONTAINER ID: 容器 ID。
IMAGE: 使用的镜像。
COMMAND: 启动容器时运行的命令。
CREATED: 容器的创建时间。
STATUS: 容器状态。
状态有7种:

  • created(已创建)
  • restarting(重启中)
  • running(运行中)
  • removing(迁移中)
  • paused(暂停)
  • exited(停止)
  • dead(死亡)

PORTS: 容器的端口信息和使用的连接类型(tcp\udp)。
NAMES: 自动分配的容器名称。
在宿主主机内使用 docker logs [ID] 命令,查看容器内的标准输出:
图片.png
通过docker stop [ID] 停止

Docker 容器使用

Docker 客户端

输入 docker 命令来查看到 Docker 客户端的所有命令选项。
图片.png
可以通过命令 docker command —help 更深入的了解指定的 Docker 命令使用方法。
图片.png

容器使用

获取镜像

如果我们本地没有 ubuntu 镜像,我们可以使用 docker pull 命令来载入 ubuntu 镜像:
图片.png

启动容器

以下命令使用 ubuntu 镜像启动一个容器,参数为以命令行模式进入该容器:
图片.png
参数说明:

  • -i: 交互式操作。
  • -t: 终端。
  • ubuntu: ubuntu 镜像。
  • /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。

要退出终端,直接输入 exit:
图片.png

启动已停止运行的容器

查看所有的容器命令如下:
图片.png
使用 docker start [ID] 启动一个已停止的容器

后台运行

在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以过 -d 指定容器的运行模式。
$ docker run -itd —name ubuntu-test ubuntu /bin/bash
注:加了 -d 参数默认不会进入容器,想要进入容器需要使用指令 docker exec(下面会介绍到)。

停止一个容器

停止容器的命令如下:
$ docker stop <容器 ID>
停止的容器可以通过 docker restart 重启:
$ docker restart <容器 ID>

进入容器

在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:

  • docker attach
  • docker exec:推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。

attach 命令
下面演示了使用 docker attach 命令。
图片.png
注意: 如果从这个容器退出,会导致容器的停止。
exec 命令
下面演示了使用 docker exec 命令。
图片.png
注意: 如果从这个容器退出,不会导致容器的停止

导出和导入容器

导出容器

如果要导出本地某个容器,可以使用 docker export 命令。
图片.png
这样将导出容器快照到本地文件。

导入容器快照

可以使用 docker import 从容器快照文件中再导入为镜像
$ cat docker/ubuntu.tar | docker import - test/ubuntu:v1

删除容器

删除容器使用 docker rm 命令:
$ docker rm -f 1e560fca3906