- 一、 Docker 的四大组成对象
- 二、搭建运行 Docker 环境
- 三、在 Windows 和 Mac 中使用 Docker
- 四、使用容器:镜像与容器
- 五、使用容器:从镜像仓库获得镜像
- 六、使用容器:运行和管理容器
- 七、为容器配置网络
- 八、管理和存储数据
- 九、操作镜像:保存和共享镜像
- 十、操作镜像:通过 Dockerfile 创建镜像
- 十一、常见 Dockerfile 使用技巧
- 十二、使用 Docker Hub 中的镜像
- 十三、组合操作:使用 Docker Compose 管理容器
- 十四、组合操作:常用的 Docker Compose 配置项
- 十五、组合操作:编写 Docker Compose 项目
- 十六、组合操作:应用于服务化开发
二、搭建运行 Docker 环境
2.1 Docker Engine 的版本
对于 Docker Engine 来说,其主要分为两个系列
- 社区版 (
CE
, Community Edition ) - 企业版 (
EE
, Enterprise Edition )
- 社区版 (
Docker Engine CE
) 主要提供了Docker
中的容器管理等基础功能,主要针对开发者和小型团队进行开发和试验。而企业版 (Docker Engine EE
) 则在社区版的基础上增加了诸如容器管理、镜像管理、插件、安全等额外服务与功能,为容器的稳定运行提供了支持,适合于中大型项目的线上运行… - 社区版和企业版的另一区别就是免费与收费了。对于我们开发者来说,社区版已经提供了
Docker
所有核心的功能,足够满足我们在开发、测试中的需求,所以我们直接选择使用社区版进行开发即可。在这本小册中,所有的内容也是围绕着社区版的Docker Engine
展开的… - 从另外一个角度,
Docker Engine
的迭代版本又会分为稳定版 (Stable release
) 和预览版 (Edge release
)。不论是稳定版还是预览版,它们都会以发布时的年月来命名版本号,例如如 17 年 3 月的版本,版本号就是 17.03…
Docker Engine
的稳定版固定为每三个月更新一次,而预览版则每月都会更新。在预览版中可以及时掌握到最新的功能特性,不过这对于我们仅是使用Docker
的开发者来说,意义并不是特别重大的,所以我还是更推荐安装更有保障的稳定版本。- 在主要版本之外,
Docker
官方也以解决Bug
为主要目的,不定期发布次要版本。次要版本的版本号由主要版本和发布序号组成,如:17.03.2
就是对17.03
版本的第二次修正…
2.2 Docker 的环境依赖
- 由于
Docker
的容器隔离依赖于Linux
内核中的相关支持,所以使用Docker
首先需要确保安装机器的Linux kernel
中包含Docker
所需要使用的特性。以目前 Docker 官方主要维护的版本为例,我们需要使用基于Linux kernel 3.10
以上版本的Linux
系统来安装Docker.
.. - 也许
Linux kernel
的版本还不够直观,下面的表格就直接展示了Docker
对主流几款Linux
系统版本的要求
操作系统 | 支持的系统版本 |
---|---|
CentOS | CentOS 7 |
Debian | Debian Wheezy 7.7 (LTS) |
Debian | Jessie 8 (LTS) |
Debian | Stretch 9 |
Debian | Buster 10 |
Fedora | Fedora 26 、 Fedora 27 |
Ubuntu | Ubuntu Trusty 14.04 (LTS) |
Ubuntu | Xenial 16.04 (LTS) |
Ubuntu | Artful 17.10... |
2.3 在 Linux 系统中安装 Docker
因为 Docker
本身就基于 Linux
的核心能力,同时目前主流的 Linux
系统中所拥有的软件包管理程序,已经可以很轻松的帮助我们处理各种依赖问题,所以在 Linux
中安装 Docker
并非什么难事
CentOS
$ sudo yum install yum-utils device-mapper-persistent-data lvm2
$
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
$ sudo yum install docker-ce
$
$ sudo systemctl enable docker
$ sudo systemctl start docker...
Debian
$ sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
$
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
$ sudo apt-get update
$ sudo apt-get install docker-ce
$
$ sudo systemctl enable docker
$ sudo systemctl start docker...
Fedora
$ sudo dnf -y install dnf-plugins-core
$
$ sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
$ sudo dnf install docker-ce
$
$ sudo systemctl enable docker
$ sudo systemctl start docker...
Ubuntu
$ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
$
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
$ sudo apt-get update
$ sudo apt-get install docker-ce
$
$ sudo systemctl enable docker
$ sudo systemctl start docker...
2.4 上手使用
在安装 Docker
完成之后,我们需要先启动 docker daemon
使其能够为我们提供 Docker
服务,这样我们才能正常使用 Docker
在我们通过软件包的形式安装 Docker Engine
时,安装包已经为我们在 Linux
系统中注册了一个 Docker
服务,所以我们不需要直接启动 docker daemon
对应的 dockerd
这个程序,而是直接启动 Docker
服务即可。启动的 Docker
服务的命令其实我已经包含在了前面谈到的安装命令中,也就是…
sudo systemctl start docker
当然,为了实现 Docker
服务开机自启动,我们还可以运行这个命令
$ sudo systemctl enable docker
docker version
在 Docker
服务启动之后,我们先来尝试一个最简单的查看 Docker
版本的命令: docker version
$ sudo docker version
Client:
Version: 18.06.1-ce
API version: 1.38
Go version: go1.10.3
Git commit: e68fc7a
Built: Tue Aug 21 17:23:03 2018
OS/Arch: linux/amd64
Experimental: false
Server:
Engine:
Version: 18.06.1-ce
API version: 1.38 (minimum version 1.12)
Go version: go1.10.3
Git commit: e68fc7a
Built: Tue Aug 21 17:25:29 2018
OS/Arch: linux/amd64
Experimental: false...
这个命令能够显示 Docker C/S
结构中的服务端 ( docker daemon
) 和客户端 ( docker CLI
) 相关的版本信息。在默认情况下, docker CLI
连接的是本机运行的 docker daemon
,由于 docker daemon
和 docker CLI
通过 RESTful
接口进行了解耦,所以我们也能修改配置用于操作其他机器上运行的 docker daemon
…
docker info
如果想要了解 Docker Engine
更多相关的信息,我们还可以通过 docker info
这个命令
$ sudo docker info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 18.06.0-ce
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
## ......
Live Restore Enabled: false...
配置国内镜像源
一个由 Docker 官方提供的国内镜像源 registry.docker-cn.com
那么有了地址,我们要如何将其配置到 Docker 中呢?
在 Linux 环境下,我们可以通过修改 /etc/docker/daemon.json
( 如果文件不存在,你可以直接创建它 ) 这个 Docker 服务的配置文件达到效果
{
"registry-mirrors": [
"https://registry.docker-cn.com"
]
}
在修改之后,别忘了重新启动 docker daemon
来让配置生效
$ sudo systemctl restart docker
要验证我们配置的镜像源是否生效,我们可以通过 docker info
来查阅当前注册的镜像源列表
$ sudo docker info
## ......
Registry Mirrors:
https://registry.docker-cn.com/
## ......
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论