容器学习实验(2)——容器的快速启动方式

间隙填充
正睿科技  发布时间:2024-07-11 13:57:06  浏览数:418
关于正睿.png

在上一个小节中我们介绍了docker容器创建的标准流程。而在实际操作过程中,使用标准步骤创建启动容器会比较繁琐,因此docker提供了更加简便的命令docker run。使用该命令时,docker会自动完成下载镜像,创建容器,启动容器的工作。

1.创建容器指定名称的容器

通过以下的一条命令,我们就可以完成下载busybox的容器镜像,创建名为busybox-1的容器,为了让容器可以在创建之后长期运行我们要使用-it参数,为了让容器在启动之后再后台运行,我们需要使用-d参数。在容器启动之后我们使用docker ps命令查询正在运行的容器。

执行命令如下:

docker run -itd --name ubuntu-2 ubuntu docker ps -a

1.jpg

2.操作已经创建的容器

使用-d参数创建容器之后,容器在后台运行,前台的命令行仍然指向宿主机。为了能狗通过命令行操作容器,我们可以使用

docker exec

命令在ubuntu-2容器上启动bash控制台程序,从而对容器进行操作。

执行命令如下:

docker exec -it ubuntu-2 bin/bash

命令执行之后提示行提示符发生了改变。这说明当前用户所操作的已经是容器中的操作系统。

2.jpg

3.创建一次性容器

上面我们为大家介绍的常见的容器创建方法,如果用户在使用docker run创建容器的时候,如果不使用-d参数。则启动容器成功之后,会自动进入容器操作系统控制台。但是此种方法进入容器操作系统之后,如果使用exit退出,容器会被关闭。因此此种方法只适用通过容器中执行一些临时性的操作时使用。

接下来我们创建一次性容器,并且在一次性容器退出之后使用docker ps -a查看容器,当我们使用docker ps时,只会列出正在运行的容器,而使用了-a参数之后,会列出包括了正在运行的和已经退出了的各种状态的容器。

执行命令如下:

docker run -it --name temp ubuntu exit

3.jpg

docker ps -a

4.jpg

4.安装容器命令行工具

docker run -it --name ubuntu-3 ubuntu

接下来再通过

lsb_release

查看操作系统的状态。会显示命令无法找到,原因是通过容器安装的ubuntu属于极简版本,没有安装非必要的命令。为了能在容器虚拟机中执行常用的操作。

5.jpg

对于ubuntu镜像的容器,我们可以使用apt-get命令来安装常用命令。接下来我们使用apt-get install来安装lsb_release, ifconfig,vim三个工具。需要注意的在使用apt-get install之前,需要首先使用apt-get udpate来更新本地资源库。另外就是此步骤受网络速度影响可能会有比大的延迟。

执行命令如下:

apt-get update apt-get install -y lsb-core net-tools vim --fix-missing

会依次下载很多依赖组件。在容器中体验安装命令后,使用exit退出容器。

在docker中,传统的ubuntu或者centos镜像所包含的命令数量都非常少,每次使用时都需要手动安装相关命令非常不方便,因此在实际使用docker时,我们经常使用busybox镜像来作为基础镜像。

接下来我们尝试创建busybox镜像,要注意的时,为了保证镜像体积,busybox镜像中并不包括bash命令,而是使用了替代的sh命令。因此我们创建busybox镜像的命令也需要做调整。

docker run -itd --name busybox-1 busybox docker exec -it busybox-1 sh

6.jpg

容器创建成功之后,我们尝试ifconfig和vi命令发现已经内置在容器之中,不过需要注意的时busybox镜像并没有包含apt-get或者yum等自动包安装工具。因此和ubuntu或者centos镜像相比,安装新工具会比较繁琐。

执行命令如下:

ifconfig vi a.txt

7.jpg

体验完busybox镜像的使用后,我们执行exit退出继续下面操作。

问题没解决? 我们帮您!

   如果您在本文中未能找到解决当前问题的办法,不用担心——正睿专业技术支持团队随时待命

服务项目.png

获取更多帮助

   文章来源:阿里云开发者社区作者:周周的奇妙编程