Docker入门 | 青训营

39 阅读4分钟

docker入门

docker简介

简单来说,容器是一个你的机器上运行的沙盒进程,它隔离了你的机器上的其他应用,比如说内核命名空间这种隔离等级,这种特性已经在linux上使用了很长时间,而docker,就是是这种特性更简单更好理解的被使用。简单来说,一个容器就是

  • 一个镜像的可运行实例,你可以使用docker API或者命令行来对一个容器进行create,start,move或者delete等操作
  • 可以部署到云端,在本地机器或虚拟机上运行。
  • 在任何系统上运行
  • 和其他的容器隔离,运行其自身的软件,二进制代码和配置

其实在我看来可以简单的把容器看成轻量虚拟机。容器方便的地方就在于环境统一,开发和测试不会因为环境问题打起来。而且容器实在是太轻量化了,运行一个centos容器只要几M,要运行centos虚拟机的话就不止这么点花费了。

下面简单说说容器相关操作,这里不谈容器仓库,只专注于镜像和容器的相关操作。

docker相关操作

容器和镜像

在使用docker之前先弄清楚docker中的两个概念的区别————容器和镜像

当你运行一个容器时,它使用了一种隔离的文件系统。这个定制的文件系统就是容器的镜像提供的。在镜像包含容器的文件系统之前,它必须包含运行这个应用所需的任何基础环境包括但不限于依赖、配置文件、脚本、二进制文件。这个镜像也包括其他的容器所需的配置,比如环境变量,要运行的默认命令,和其他的元文件。

可以简单的把镜像看出二进程可执行文件,而容器是运行中的程序。我觉得这个比喻比较恰当。

这里也要记住两者的英文单词,镜像image,容器container。

Centos中docker安装

yum install docker -y 
systemctl enable docker
systemctl start docker 
  • yum install docker -y: yum方式安装docker, -y的含义是自动yes。
  • systemctl enable docker:将Docker服务添加到系统启动项中,使得系统在下次重启时自动启动Docker服务。
  • systemctl start docker:启动Docker服务,即开始运行Docker引擎,并提供容器化应用的服务。

镜像操作

docker pull

在使用docker容器化技术之前,要把我们的"二进制可执行文件"下载下来。

docker pull centos7

拉取centos7的镜像

docker images

可以使用docker images列出所有本地镜像。

docker images

image.png

容器操作

docker ps

列出运行中的容器

docker ps

image.png

docker stats

显示运行中容器资源的使用情况,包括:CPU、内存、网络 I/O 等。

docker stats

image.png

docker run

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

最简单的

docker run --name m1 -d centos:7

image.png 简单解释下这个命令,运行一个centos版本7的容器,名称是m1,-d选项的作用是后台运行。 当然还有很多别的选项,比如端口映射等等等。

docker stop

docker stop m1

停止运行刚才启动的centos容器。注意。stop后面的参数要是容器名称或者hash值。不能是镜像名称。

docker rm

docker rm m1

删除centos容器m1。注意。rm后面的参数要是容器名称或者hash值。不能是镜像名称。 有一个使用场景是镜像更新了,想启动新版本的容器,如果只进行stop操作是起不来的。

docker exec

运行容器中的某个可执行程序

docker exec -it m1 bash

上面这行命令运行的是bash,会打开容器的控制台。

docker cp

从容器往宿主机,或者从宿主机往容器传送文件或文件夹。

docker cp m1:/hello.txt /

上面这行命令的意思是把容器m1中的hello.txt传到宿主机的/目录

docker cp /hello.txt m1:/

上面这行命令的含义则恰恰相反,是把宿主机中的某个文件存入容器