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
容器操作
docker ps
列出运行中的容器
docker ps
docker stats
显示运行中容器资源的使用情况,包括:CPU、内存、网络 I/O 等。
docker stats
docker run
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
最简单的
docker run --name m1 -d centos:7
简单解释下这个命令,运行一个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:/
上面这行命令的含义则恰恰相反,是把宿主机中的某个文件存入容器