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
使用 docker run在容器内运行应用程序,输出Hello world
接下来,使用Ubuntu:16.04镜像生成容器,并输出hello world,首先下载ubuntu:16.04镜像
1
docker pull ubuntu:16.04
接着,运行docker run
命令使用Ubuntu容器输出hello world,命令如下:
1
docker run ubuntu:16.04 /bin/echo "hello world"
5.2 运行交互式容器
通过docker的两个参数-i -t
,让docker运行的容器实现”对话”的能力:
各个参数解析:
- -t: 在新容器内指定一个伪终端或终端。
- -i: 允许你对容器内的标准输入 (STDIN) 进行交互。
注意上图中的root@0529c96c034f:/#,此时我们已进入一个 ubuntu 16.04 系统的容器
在容器中使用命令 cat /proc/version
查看当前系统的版本信息
1
cat /proc/version
在容器中使用命令ls
查看当前目录下的文件列表
通过exit
命令或者使用CTRL+D
退出容器。
注意第三行中 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"
在输出中,没有看到期望的 “hello world”,而是一串长字符:
1
470cf4dc561cacc67f00a6f5d35d202858b90cb347bda516a875169c2580e9ff
这个长字符串叫做容器ID,对每个容器来说都是唯一的。可以通过容器ID操作、查看对应的容器。 首先,我们需要确认容器有在运行,可以通过docker ps
来查看:
输出详情介绍:
- 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
使用容器名称查看日志:
1
docker logs eager_cannon
5.4 停止容器
使用docker stop
命令来停止容器:
1
docker stop 470cf
通过docker ps
查看,容器已经停止工作。 注意,在上述命令中,容器ID只使用了470cf
,而没有写上完整的“470cf4dc561c”,这是由于docker会自动按照前缀搜索,如果某个容器ID可以和这个前缀匹配,则会定位到该容器。因此可以使用470cf
这种简写的方式,当然,如果确定只有一个容器以4
开头,也可以直接用命令docker stop 4
。
同样地,在停止容器时,也可以使用容器名称来操作:
<font color=#FFFFFF>实验报告来自:囧囧JOJO</font>