
参考资料:http://c.biancheng.net/docker/
1. Docker 由来
- 我本地运行没问题啊:由于环境不一致导致相同的程序运行结果不一致
- 哪个哥们又写死循环了,怎么这么卡:在多用户环境下会因为其他用户的操作失误影响到自己编写的程序
- 淘宝双11用户量暴增:需要很多的运维人员增加部署的服务器,运维成本过高的问题
- 一门技术的环境要先安装搭建啊:安装软件,安装依赖环境,繁琐的操作
1 2 3 4 5 6 7 8 9 10 11 12
| 比如 前端:Vue | 后端:SpringBoot | DB:MySQL 开发环境: step1 - 安装 nodejs 环境 step2 - 安装各种 npm 依赖 step3 - 安装 java 运行时环境 step4 - 安装各种第三方依赖 step5 - 安装 mysql 数据库 step6 - 环境变量、启动脚本 step7 - 安装配置 redis step8 - 安装配置 nginx ... 测试/预发布/生产环境等 还需要再来一遍。有了 Docker 只需要打包一份,各个环境都可以正常运行无需关心环境。
|
Docker 作者:所罗门

Docker 的思想:
- 集装箱:会将所有需要的内容放到不同的集装箱中,谁需要这些环境就直接拿到集装箱即可
- 标准化:运输标准化、命令标准化、提供 rest 的 API
- 隔离性:运行集装箱中的内容时,会在 linux 内核中单独开辟一片空间,不影响其他程序
- 仓库(Repository)- eg: 分享Java实例/分享菜肴:仓库可看成一个代码控制中心,用来保存镜像。
- 镜像(Image)- eg: Java类模版/菜谱:Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
- 容器(Container)- eg: Java类实例/菜肴:镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

2. Docker 安装
安装方法(选择 CentOS):https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
2.1 安装 Docker 客户端
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| ps -ef | grep docker
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum -y install docker-ce
docker -v
service docker start
ps -ef |grep docker
systemctl status docker
|
安装前准备:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum makecache fast sudo yum -y install docker-ce
sudo service docker start
注意:其他注意事项在下面的注释中
|
2.2 配置镜像加速器
针对 Docker 客户端版本大于 1.10.0 的用户
您可以通过修改 daemon 配置文件 /etc/docker/daemon.json 来使用加速器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://docker.registry.cyou", "https://docker-cf.registry.cyou", "https://dockercf.jsdelivr.fyi", "https://docker.jsdelivr.fyi", "https://dockertest.jsdelivr.fyi", "https://mirror.aliyuncs.com", "https://dockerproxy.com", "https://mirror.baidubce.com", "https://docker.m.daocloud.io", "https://docker.nju.edu.cn", "https://docker.mirrors.sjtug.sjtu.edu.cn", "https://docker.mirrors.ustc.edu.cn", "https://mirror.iscas.ac.cn", "https://docker.rainbond.cc", "https://7cptp8wl.mirror.aliyuncs.com" ] } EOF
systemctl daemon-reload
systemctl restart docker
|
2.3 启动 Docker 并测试
1 2 3 4 5 6 7 8 9
| docker -v
systemctl start docker
systemctl status docker
systemctl enable docker
|
3. 阿里云 Docker 安装(可选)
1 2 3 4 5 6 7 8 9 10 11
| curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm
yum install docker-ce
systemctl start docker
|