Docker 是一个开源的商业产品,有两个版本:社区版(Community Edition,缩写为 CE)和企业版(Enterprise Edition,缩写为 EE)。企业版包含了一些收费服务,个人开发者一般用不到。下面的介绍都针对社区版。
这里centos使用yum安装即可
yum -y install docker
安装完成后,运行下面的命令,验证是否安装成功
docker version
Docker 是服务器—-客户端架构。命令行运行docker命令的时候,需要本机有Docker服务。如果这项服务没有启动,可以用下面的命令启动
service docker start
Docker把应用程序及其依赖,打包在image文件里面。只有通过这个文件,才能生成Docker容器。image文件可以看作是容器的模板。Docker根据image文件生成容器的实例。同一个image文件,可以生成多个同时运行的容器实例。
image是二进制文件。实际开发中,一个image文件往往通过继承另一个image文件,加上一些个性化设置而生成。举例来说,你可以在Ubuntu的image基础上,往里面加入Apache服务器,形成你的image。
列出本机的所有image文件。
docker images
删除image文件
docker image rm [imageName]
image文件是通用的,一台机器的image文件拷贝到另一台机器照样可以使用。一般来说为了节省时间,我们应该尽量使用别人制作好的image文件,而不是自己制作。即使要定制,也应该基于别人的image文件进行加工,而不是从零开始制作。
为了方便共享,image文件制作完成后,可以上传到网上的仓库。Docker的官方仓库Docker Hub是最重要、最常用的image仓库。此外,出售自己制作的image文件也是可以的。
1.下面,我们通过最简单的 image 文件”hello world”,感受一下Docker。
需要说明的是,国内连接 Docker 的官方仓库很慢,还会断线,需要将默认仓库改成国内的镜像网站。
echo 'DOCKER_OPTS="--registry-mirror=https://registry.docker-cn.com"' >> /etc/default/docker
service docker restart
2.首先,运行下面的命令,将 image文件从仓库抓取到本地。
docker image pull library/hello-world
上面代码中,docker image pull是抓取image文件的命令。library/hello-world是image文件在仓库里面的位置,其中library是image文件所在的组,hello-world是image文件的名字。
3.由于Docker官方提供的image文件,都放在library组里面,所以它的是默认组可以省略。因此上面的命令可以写成下面这样。
docker image pull hello-world
4.抓取成功以后,就可以在本机看到这个 image 文件了。
docker image ls
5.现在,运行这个 image 文件。
docker container run hello-world
docker container run命令会从image文件,生成一个正在运行的容器实例。
注意docker container run命令具有自动抓取 image 文件的功能。如果发现本地没有指定的image文件,就会从仓库自动抓取。因此前面的docker image pull命令并不是必需的步骤。
如果运行成功,你会在屏幕上读到下面的输出。
Hello from Docker!
This message shows that your installation appears to be working correctly.
... ...
6.输出这段提示以后,hello world就会停止运行,容器自动终止。
有些容器不会自动终止,因为提供的是服务。比如安装运行Ubuntu的image,就可以在命令行体验Ubuntu系统。
docker container run -it ubuntu bash
对于那些不会自动终止的容器,必须使用docker container kill 命令手动终止。
docker container kill [containID]
image文件生成的容器实例,本身也是一个文件,称为容器文件。也就是说一旦容器生成,就会同时存在两个文件: image文件和容器文件。而且关闭容器并不会删除容器文件,只是容器停止运行而已。
列出本机正在运行的容器
docker container ls
列出本机所有容器,包括终止运行的容器
docker container ls --all
上面命令的输出结果之中,包括容器的ID。很多地方都需要提供这个ID,比如上一节终止容器运行的docker container kill命令。
终止运行的容器文件,依然会占据硬盘空间,可以使用docker container rm命令删除。
docker container rm [containerID]
运行上面的命令之后,再使用docker container ls –all命令,就会发现被删除的容器文件已经消失了。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。