Preface
Docker实现了宿主系统和Docker容器(container)的隔离,使用Docker可以将构建开发所需环境的镜像(images),再根据镜像生成容器实例。实现不依赖宿主机环境的高效部署、测试。
油条有一篇很好的文章介绍了Docker的工作原理。链接
Get Started
安装Docker,官网文档
1.官方镜像仓库:https://hub.docker.com/
2.官网下载速度较慢,推荐DaoCloud仓库,和官网同步更新的 https://hub.daocloud.io/
下载ubuntu基础镜像,冒号后是标签
| 1 | docker pull daocloud.io/library/ubuntu:16.04 | 
执行docker images查看已下载的镜像
创建容器实例,返回容器ID。-d后台运行
| 1 | docker run -d -it daocloud.io/library/ubuntu:16.04 | 
执行docker ps查看正在运行的容器
Build Your Image
进入容器,ID输入可区分的几位就可以了
| 1 | docker exec -it 4e bash | 
可以看到在容器中有一套全新的目录结构,与宿主机是隔离的。
更改软件源为阿里云源
| 1 | cd /etc/apt/ | 
vim sources.list将如下内容加入文件
| 1 | deb http://mirrors.cloud.aliyuncs.com/ubuntu/ xenial main | 
日常apt-get update|upgrade之后着手安装jdk和Tomcat了
我的另一篇博客详细介绍了如何安装 JDK&Tomcat
如果你成功到了这里,那恭喜你,你自己的开发环境镜像已经构建完了。还需要一些步骤来将你的镜像推上云端!
Push It !
exit或者ctrl+d退出当前容器,docker ps查看容器ID
根据容器创建一个新的镜像,不加标签默认latest
| 1 | docker commit 4e s1mple1995/java-web-env | 
在push前需要在docker官网注册账户,用于存放自己的镜像
在Docker Cloud中create repository,镜像名要和服务器中的镜像名一致,不一致可以使用如下命令
| 1 | docker tag local-image:tagname new-repo:tagname | 
在服务器端登录
| 1 | docker login | 
执行push命令,等待上传完成
| 1 | docker push s1mple1995/java-web-env | 
现在你的镜像已经存放在Docker Cloud云端了,搜索你的镜像,随时随地可以pull下来。
| 1 | docker search s1mple1995 | 
Tips
- Docker的镜像管理很像git的版本控制。
- 你也可以使用阿里云的容器镜像服务。如果你的服务器是阿里云的ECS,可以使用内网传输,速度非常快。 1 docker login registry-vpc.cn-hangzhou.aliyuncs.com 
