文章

Docker实验一:Docker入门

1.实验内容

学习Docker的入门级命令。

2.实验要点

掌握Docker的入门级命令

3.实验环境

  • Windows11

4.注意事项

如果docker pull由于网络原因无法使用,可使用docker load命令直接从桌面的images目录中加载相应的镜像。

例如对于命令:

1
docker pull ubuntu:latest

若实验环境无法访问互联网或访问dockerhub服务不稳定,可使用如下命令代替:

1
docker load < images/ubuntu_latest.tar.gz

上述命令假设了当前的工作目录为桌面(/headless/Desktop)。

如果当前工作目录不是桌面(可使用pwd命令查看),可使用如下命令代替:

1
docker load < /headless/Desktop/images/ubuntu_latest.tar.gz

5.实验步骤

5.1 HelloWorld

首先使用docker pull从镜像仓库Docker Hub下载hello-world镜像。

1
docker pull hello-world:latest

image-20210914195230031

使用 docker run在容器内运行应用程序,输出Hello world

image-20210914195549162

接下来,使用Ubuntu:16.04镜像生成容器,并输出hello world,首先下载ubuntu:16.04镜像

1
docker pull ubuntu:16.04

image-20210914195907176

接着,运行docker run命令使用Ubuntu容器输出hello world,命令如下:

1
docker run ubuntu:16.04 /bin/echo "hello world"

image-20210914195946594

5.2 运行交互式容器

通过docker的两个参数-i -t,让docker运行的容器实现”对话”的能力:

image-20210914200042232

各个参数解析:

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

注意上图中的root@0529c96c034f:/#,此时我们已进入一个 ubuntu 16.04 系统的容器

在容器中使用命令 cat /proc/version 查看当前系统的版本信息

1
cat /proc/version

image-20210914200223477

在容器中使用命令ls查看当前目录下的文件列表

image-20210914200243864

通过exit命令或者使用CTRL+D退出容器。

image-20210914200300831

注意第三行中 PS C:\Users\JOJO> 表明已退出当前的容器,返回到当前的主机中。

5.3 启动容器(后台模式)

使用以下命令创建一个以进程方式运行的容器

1
docker run -d ubuntu:16.04 /bin/bash -c "while true;do echo hello world; sleep 1; done"

image-20210914200402686

在输出中,没有看到期望的 “hello world”,而是一串长字符:

1
470cf4dc561cacc67f00a6f5d35d202858b90cb347bda516a875169c2580e9ff

这个长字符串叫做容器ID,对每个容器来说都是唯一的。可以通过容器ID操作、查看对应的容器。 首先,我们需要确认容器有在运行,可以通过docker ps来查看:

image-20210914200450281

输出详情介绍:

  • CONTAINER ID:容器 ID。
  • IMAGE:使用的镜像。
  • COMMAND:启动容器时运行的命令。
  • CREATED:容器的创建时间。
  • STATUS:容器状态,共包含7种状态。
    • created:已创建
    • restarting:重启中
    • running:运行中
    • removing:迁移中
    • paused:暂停
    • exited:停止
    • dead:死亡
  • PORTS:容器的端口信息和使用的连接类型(tcp\udp)。
  • NAMES:自动分配的容器名称。

在宿主主机内使用docker logs命令,查看容器内的标准输出:

1
docker logs 470cf4dc561c

image-20210914200646285

使用容器名称查看日志:

1
docker logs eager_cannon

image-20210914200759983

5.4 停止容器

使用docker stop命令来停止容器:

1
docker stop 470cf

image-20210914200950223

通过docker ps查看,容器已经停止工作。 注意,在上述命令中,容器ID只使用了470cf,而没有写上完整的“470cf4dc561c”,这是由于docker会自动按照前缀搜索,如果某个容器ID可以和这个前缀匹配,则会定位到该容器。因此可以使用470cf这种简写的方式,当然,如果确定只有一个容器以4开头,也可以直接用命令docker stop 4

image-20210914201319884

同样地,在停止容器时,也可以使用容器名称来操作:

image-20210914201540600

<font color=#FFFFFF>实验报告来自:囧囧JOJO</font>

本文由作者按照 CC BY 4.0 进行授权