自学了几天Ddocker,就干脆总结一下,也顺带增加一篇《30分钟入门系列》。网上能够查到的对于Docker的定义我就不再重复了,说说我自己对它的理解:Docker一个方便多次部署的虚拟化Linux容器,与当下流行的SpringBoot和微服务框架搭配更加相得益彰,从而真正的做到从开发到部署的全流程灵敏。请注意这里的三个关键词:Linux容器,SpringBoot,灵敏。首先,Docker不能别用来部署本地应用(如果你有开发过基于Qt的桌面应用你就能体会到运行环境不统一对于开发人员来说简直是噩梦)。其次,这篇博客是针对Java开发人员的,但Docker的使用场景绝不仅限于此。最后,灵敏意味着可能有一些开发方式需要调整,到底如何利用Docker应该是当你了解它之后需要认真思考的问题。
一、环境准备
我个人的测试环境为VirtualBox,CentOS7及最新版本的Spring Boot。首先以最小化方式安装CentOS:
推荐在安装阶段就默认打开网络链接...接下来等待20分钟虚拟机安装完毕
由于是最小化安装,完成以后推荐安装几条基础命令:
1. yum update
2. yum install -y net-tools vim curl wget
以上测试环境就算搭建完成,以下开始安装Docker。我们进入官方网站,他们已经很贴心的为我们准备好了安装教程。目前我可以登陆Docker的官方网站,并且基于Centos的安装说明在这里也可以查看。不过为了以防万一,我在博客中还是记录一下如果你发现无法访问或阅读英文有些困难直接跟着下面的流程走即可:
1. 卸载系统中的早期版本
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
2. 安装工具
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
3. 配置Docker的安装yum原
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
4. 安装Docker CE
$ sudo yum install docker-ce
5. 启动Docker
$ sudo systemctl start docker
6. 运行Hello World
$ sudo docker run hello-world
7. 配置国内的镜像加速
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s
二、操作指南
网上有关docker的命令有很多,详细的说明各位可以去更权威的地方查阅。这里我只列举几条最重要的命令并加以说明:
1. 查阅镜像列表:docker images
你应该不会有这么多镜像,但是至少应该存在一条hello-world。没错这就是你刚刚下载的测试镜像。
2. 查阅容器列表:docker ps -a
你应该也只会看到一条hello-world的容器。
这里我们已经接触到了有关docker的第一个重要概念:镜像和容器。不过暂时我还不打算对这两个概念加以说明,我们可以反复运行
$ sudo docker run hello-world
然后再查看容器列表:
没错,你现在发现多次运行同一个镜像只会发生一次镜像下载,但是却会出现多个容器。更准确的说,你运行了几次hello-world就会生成几个容器。
3. 停止和删除容器:docker stop/rm [container_id]
我们删除掉所有hello-world容器,瞬间整个世界变的美好了。
4. 删除镜像:docker rmi [image_id]
我们删除掉hello-world镜像,世界终于又归于寂静。
有了感性认识以后,现在可以说明镜像和容器的概念: