Update title style

Signed-off-by: Kang HuaiShuai <khs1994@khs1994.com>
This commit is contained in:
Kang HuaiShuai 2019-11-05 23:35:43 +08:00
parent 3ba7560b4d
commit 709c77adcb
No known key found for this signature in database
GPG Key ID: 0A380828B1C243A7
39 changed files with 297 additions and 316 deletions

View File

@ -37,6 +37,10 @@ module.exports = {
text: 'Kubernetes', text: 'Kubernetes',
link: '/kubernetes/', link: '/kubernetes/',
}, },
{
text: "云计算",
link: "/cloud/",
},
{ {
text: 'GitHub', text: 'GitHub',
link: 'https://github.com/yeasy/docker_practice' link: 'https://github.com/yeasy/docker_practice'
@ -58,6 +62,13 @@ module.exports = {
// } // }
], ],
sidebar: { sidebar: {
'/cloud/': [
'intro',
'aws',
'tencentCloud',
'alicloud',
'summary',
],
'/kubernetes/': [ '/kubernetes/': [
'intro', 'intro',
'quickstart', 'quickstart',
@ -76,7 +87,6 @@ module.exports = {
'wordpress', 'wordpress',
], ],
'/install/': [ '/install/': [
'/install/',
'ubuntu', 'ubuntu',
'debian', 'debian',
'fedora', 'fedora',
@ -85,9 +95,9 @@ module.exports = {
'mac', 'mac',
'windows', 'windows',
'mirror', 'mirror',
'experimental',
], ],
'/underly/': [ '/underly/': [
'/underly/',
'arch', 'arch',
'namespace', 'namespace',
'cgroups', 'cgroups',
@ -96,7 +106,6 @@ module.exports = {
'network', 'network',
], ],
'/repository/': [ '/repository/': [
'/repository/',
'dockerhub', 'dockerhub',
'registry', 'registry',
'registry_auth', 'registry_auth',
@ -107,7 +116,6 @@ module.exports = {
title: "操作系统", title: "操作系统",
collapsable:false, collapsable:false,
children: [ children: [
'/cases/os/',
'busybox', 'busybox',
'alpine', 'alpine',
'debian', 'debian',
@ -119,14 +127,13 @@ module.exports = {
title: "在 IDE 中使用 Docker", title: "在 IDE 中使用 Docker",
collapsable: false, collapsable: false,
children: [ children: [
'/ide/', '/IDE/',
'/ide/vscode', '/IDE/vsCode',
], ],
}, },
], ],
'/cases/ci/': [ '/cases/ci/': [
'/cases/ci/', 'actions/',
'/cases/ci/actions/',
{ {
title: "Drone", title: "Drone",
collapsable: false, collapsable: false,
@ -145,55 +152,55 @@ module.exports = {
title: "Docker 简介", title: "Docker 简介",
collapsable: false, collapsable: false,
children: [ children: [
'/introduction/', 'introduction/',
'/introduction/what', 'introduction/what',
'/introduction/why', 'introduction/why',
] ]
},{ },{
title: "基本概念", title: "基本概念",
collapsable: false, collapsable: false,
children: [ children: [
'/basic_concept/', 'basic_concept/',
'/basic_concept/image', 'basic_concept/image',
'/basic_concept/container', 'basic_concept/container',
'/basic_concept/repository' 'basic_concept/repository'
] ]
}, },
{ {
title: "使用镜像", title: "使用镜像",
collapsable: false, collapsable: false,
children: [ children: [
'/image/', 'image/',
'/image/pull', 'image/pull',
'/image/list', 'image/list',
'/image/rm', 'image/rm',
'/image/commit', 'image/commit',
'/image/build', 'image/build',
'/image/other.md', 'image/other.md',
'/image/internal.md', 'image/internal.md',
] ]
}, },
{ {
title: 'Dockerfile', title: 'Dockerfile',
collapsable: false, collapsable: false,
children: [ children: [
"/image/dockerfile/", "image/dockerfile/",
'/image/dockerfile/copy', 'image/dockerfile/copy',
'/image/dockerfile/add', 'image/dockerfile/add',
'/image/dockerfile/cmd', 'image/dockerfile/cmd',
'/image/dockerfile/entrypoint', 'image/dockerfile/entrypoint',
'/image/dockerfile/env', 'image/dockerfile/env',
'/image/dockerfile/arg', 'image/dockerfile/arg',
'/image/dockerfile/volume', 'image/dockerfile/volume',
'/image/dockerfile/expose', 'image/dockerfile/expose',
'/image/dockerfile/workdir', 'image/dockerfile/workdir',
'/image/dockerfile/user', 'image/dockerfile/user',
'/image/dockerfile/healthcheck', 'image/dockerfile/healthcheck',
'/image/dockerfile/onbuild', 'image/dockerfile/onbuild',
'/image/dockerfile/references', 'image/dockerfile/references',
'/image/multistage-builds/', 'image/multistage-builds/',
'/image/multistage-builds/laravel', 'image/multistage-builds/laravel',
'/image/manifest', 'image/manifest',
] ]
},{ },{
title: "操作容器", title: "操作容器",
@ -297,18 +304,6 @@ module.exports = {
'coreos/intro_tools', 'coreos/intro_tools',
], ],
}, },
{
title: "容器与云计算",
collapsable:false,
children: [
'cloud/',
'cloud/intro',
'cloud/aws',
'cloud/tencentCloud',
'cloud/alicloud',
'cloud/summary',
],
},
{ {
title: "Docker 开源项目", title: "Docker 开源项目",
collapsable:false, collapsable:false,
@ -359,15 +354,23 @@ module.exports = {
title: 'Mesos', title: 'Mesos',
collapsable: false, collapsable: false,
children: [ children: [
'/mesos/intro', 'mesos/',
'/mesos/installation', 'mesos/intro',
'/mesos/architecture', 'mesos/installation',
'/mesos/configuration', 'mesos/architecture',
'/mesos/monitor', 'mesos/configuration',
'/mesos/framework', 'mesos/monitor',
'/mesos/summary', 'mesos/framework',
'mesos/summary',
] ]
}, },
{
title: 'Docker Swarm',
collapsable: false,
children: [
"swarm/"
]
}
], ],
}, },
} }

View File

@ -1,3 +1,7 @@
# 归档项目 # 归档项目
以下项目不被官方支持或内容陈旧将在下一版本中删除 以下项目不被官方支持或内容陈旧将在下一版本中删除
* Docker Machine
* Mesos
* Docker Swarm

View File

@ -2,19 +2,7 @@
## 启用 Buildx ## 启用 Buildx
`buildx` 命令属于实验特性必须设置环境变量以使用该命令 `buildx` 命令属于实验特性参考 [开启实验特性](../install/experimental.md) 一节
Linux/macOS
```bash
$ export DOCKER_CLI_EXPERIMENTAL=enabled
```
Windows
```bash
$ set $env:DOCKER_CLI_EXPERIMENTAL=enabled
```
## 使用 ## 使用

View File

@ -1,10 +1,10 @@
## Travis CI 中使用 Docker # Travis CI 中使用 Docker
当代码提交到 GitHub [Travis CI](https://travis-ci.com/) 会根据项目根目录 `.travis.yml` 文件设置的指令,执行一系列操作。 当代码提交到 GitHub [Travis CI](https://travis-ci.com/) 会根据项目根目录 `.travis.yml` 文件设置的指令,执行一系列操作。
本小节介绍如何在 Travis CI 中使用 Docker 进行持续集成/持续部署CI/CD这里以当代码提交到 GitHub 时自动构建 Docker 镜像并推送到 Docker Hub 为例进行介绍 本小节介绍如何在 Travis CI 中使用 Docker 进行持续集成/持续部署CI/CD这里以当代码提交到 GitHub 时自动构建 Docker 镜像并推送到 Docker Hub 为例进行介绍
### 准备 ## 准备
首先登录 https://travis-ci.com/account/repositories 选择 GitHub 仓库,按照指引安装 GitHub App 来启用 GitHub 仓库构建。 首先登录 https://travis-ci.com/account/repositories 选择 GitHub 仓库,按照指引安装 GitHub App 来启用 GitHub 仓库构建。
@ -42,6 +42,6 @@ after_success:
> 请提前在 Travis CI 仓库设置页面配置 `DOCKER_PASSWORD` `DOCKER_USERNAME` 变量 > 请提前在 Travis CI 仓库设置页面配置 `DOCKER_PASSWORD` `DOCKER_USERNAME` 变量
### 查看结果 ## 查看结果
将项目推送到 GitHub登录 [Travis CI](https://travis-ci.com/) 查看构建详情。 将项目推送到 GitHub登录 [Travis CI](https://travis-ci.com/) 查看构建详情。

View File

@ -1,6 +1,6 @@
## Alpine # Alpine
### 简介 ## 简介
![Apline Linux 操作系统](_images/alpinelinux-logo.png) ![Apline Linux 操作系统](_images/alpinelinux-logo.png)
@ -22,7 +22,7 @@ ubuntu latest b39b81afc8ca 188.3 MB
centos latest 8efe422e6104 210 MB centos latest 8efe422e6104 210 MB
``` ```
### 获取并使用官方镜像 ## 获取并使用官方镜像
由于镜像很小下载时间往往很短读者可以直接使用 `docker run` 指令直接运行一个 `Alpine` 容器并指定运行的 Linux 指令例如 由于镜像很小下载时间往往很短读者可以直接使用 `docker run` 指令直接运行一个 `Alpine` 容器并指定运行的 Linux 指令例如
@ -31,7 +31,7 @@ $ docker run alpine echo '123'
123 123
``` ```
### 迁移至 `Alpine` 基础镜像 ## 迁移至 `Alpine` 基础镜像
目前大部分 Docker 官方镜像都已经支持 `Alpine` 作为基础镜像可以很容易进行迁移 目前大部分 Docker 官方镜像都已经支持 `Alpine` 作为基础镜像可以很容易进行迁移
@ -54,7 +54,7 @@ $ echo "http://dl-4.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositorie
$ apk --update add --no-cache <package> $ apk --update add --no-cache <package>
``` ```
### 相关资源 ## 相关资源
* `Alpine` 官网https://www.alpinelinux.org/ * `Alpine` 官网https://www.alpinelinux.org/
* `Alpine` 官方仓库https://github.com/alpinelinux * `Alpine` 官方仓库https://github.com/alpinelinux

View File

@ -1,6 +1,6 @@
## Busybox # Busybox
### 简介 ## 简介
![Busybox - Linux 瑞士军刀](_images/busybox-logo.png) ![Busybox - Linux 瑞士军刀](_images/busybox-logo.png)
@ -8,7 +8,7 @@
`BusyBox` 可运行于多款 `POSIX` 环境的操作系统中 `Linux`包括 `Android``Hurd``FreeBSD` `BusyBox` 可运行于多款 `POSIX` 环境的操作系统中 `Linux`包括 `Android``Hurd``FreeBSD`
### 获取官方镜像 ## 获取官方镜像
`Docker Hub` 中搜索 `busybox` 相关的镜像 `Docker Hub` 中搜索 `busybox` 相关的镜像
@ -44,7 +44,7 @@ REPOSITORY TAG IMAGE ID CREATED
busybox latest e72ac664f4f0 6 weeks ago 2.433 MB busybox latest e72ac664f4f0 6 weeks ago 2.433 MB
``` ```
### 运行 busybox ## 运行 busybox
启动一个 `busybox` 容器并在容器中执行 `grep` 命令 启动一个 `busybox` 容器并在容器中执行 `grep` 命令
@ -105,7 +105,7 @@ tmpfs on /proc/kcore type tmpfs (rw,nosuid,mode=755)
`busybox` 镜像虽然小巧但包括了大量常见的 `Linux` 命令读者可以用它快速熟悉 `Linux` 命令 `busybox` 镜像虽然小巧但包括了大量常见的 `Linux` 命令读者可以用它快速熟悉 `Linux` 命令
### 相关资源 ## 相关资源
* `Busybox` 官网https://busybox.net/ * `Busybox` 官网https://busybox.net/
* `Busybox` 官方仓库https://git.busybox.net/busybox/ * `Busybox` 官方仓库https://git.busybox.net/busybox/

View File

@ -1,7 +1,7 @@
## Debian/Ubuntu # Debian/Ubuntu
`Debian` `Ubuntu` 都是目前较为流行的 **Debian ** 的服务器操作系统十分适合研发场景`Docker Hub` 上提供了官方镜像国内各大容器云服务也基本都提供了相应的支持 `Debian` `Ubuntu` 都是目前较为流行的 **Debian ** 的服务器操作系统十分适合研发场景`Docker Hub` 上提供了官方镜像国内各大容器云服务也基本都提供了相应的支持
### Debian 系统简介 ## Debian 系统简介
![Debian 操作系统](_images/debian-logo.png) ![Debian 操作系统](_images/debian-logo.png)
@ -11,7 +11,7 @@
众多的 `Linux` 发行版例如 `Ubuntu``Knoppix` `Linspire` `Xandros` 都基于 `Debian GNU/Linux` 众多的 `Linux` 发行版例如 `Ubuntu``Knoppix` `Linspire` `Xandros` 都基于 `Debian GNU/Linux`
#### 使用 Debian 官方镜像 ### 使用 Debian 官方镜像
读者可以使用 `docker search` 查找 `Debian` 镜像 读者可以使用 `docker search` 查找 `Debian` 镜像
@ -36,13 +36,13 @@ Debian GNU/Linux 8
`Debian` 镜像很适合作为基础镜像构建自定义镜像 `Debian` 镜像很适合作为基础镜像构建自定义镜像
### Ubuntu 系统简介 ## Ubuntu 系统简介
![Ubuntu 操作系统](_images/ubuntu-logo.jpg) ![Ubuntu 操作系统](_images/ubuntu-logo.jpg)
`Ubuntu` 是一个以桌面应用为主的 `GNU/Linux` 操作系统其名称来自非洲南部祖鲁语或豪萨语的ubuntu一词官方译名友帮拓另有吾帮托乌班图有奔头乌斑兔等译名`Ubuntu` 意思是人性以及我的存在是因为大家的存在是非洲传统的一种价值观类似华人社会的仁爱思想 `Ubuntu` 基于 `Debian` 发行版和 `GNOME/Unity` 桌面环境 `Debian` 的不同在于它每 6 个月会发布一个新版本 2 年推出一个长期支持 **Long Term SupportLTS** 版本一般支持 3 年时间 `Ubuntu` 是一个以桌面应用为主的 `GNU/Linux` 操作系统其名称来自非洲南部祖鲁语或豪萨语的ubuntu一词官方译名友帮拓另有吾帮托乌班图有奔头乌斑兔等译名`Ubuntu` 意思是人性以及我的存在是因为大家的存在是非洲传统的一种价值观类似华人社会的仁爱思想 `Ubuntu` 基于 `Debian` 发行版和 `GNOME/Unity` 桌面环境 `Debian` 的不同在于它每 6 个月会发布一个新版本 2 年推出一个长期支持 **Long Term SupportLTS** 版本一般支持 3 年时间
#### 使用 Ubuntu 官方镜像 ### 使用 Ubuntu 官方镜像
`Ubuntu` 相关的镜像有很多这里使用 `--filter=stars=10` 参数只搜索那些被收藏 `10` 次以上的镜像 `Ubuntu` 相关的镜像有很多这里使用 `--filter=stars=10` 参数只搜索那些被收藏 `10` 次以上的镜像
@ -162,7 +162,7 @@ root@7d93de07bf76:/# curl 127.0.0.1
配合使用 `-p` 参数对外映射服务端口可以允许容器外来访问该服务 配合使用 `-p` 参数对外映射服务端口可以允许容器外来访问该服务
### 相关资源 ## 相关资源
* `Debian` 官网https://www.debian.org/ * `Debian` 官网https://www.debian.org/
* `Neuro Debian` 官网http://neuro.debian.net/ * `Neuro Debian` 官网http://neuro.debian.net/

View File

@ -1,4 +1,4 @@
## 阿里云 # 阿里云
![阿里云](_images/aliyun-logo.png) ![阿里云](_images/aliyun-logo.png)

View File

@ -1,4 +1,4 @@
## 亚马逊云 # 亚马逊云
![AWS](_images/aws-logo.jpg) ![AWS](_images/aws-logo.jpg)

View File

@ -1,7 +1,7 @@
## 简介 # 简介
目前与容器相关的云计算主要分为两种类型 目前与容器相关的云计算主要分为两种类型
一种是传统的 IaaS 服务商提供对容器相关的服务包括镜像下载容器托管等 一种是传统的 IaaS 服务商提供对容器相关的服务包括镜像下载容器托管等
另一种是直接基于容器技术对外提供容器云服务所谓 Container as a ServiceCaaS 另一种是直接基于容器技术对外提供容器云服务所谓 Container as a ServiceCaaS

View File

@ -1,4 +1,4 @@
## 本章小结 # 本章小结
本章介绍了公有云服务对 Docker 的积极支持以及新出现的容器云平台 本章介绍了公有云服务对 Docker 的积极支持以及新出现的容器云平台

View File

@ -1,4 +1,4 @@
## 腾讯云 # 腾讯云
![腾讯云](_images/qcloud-logo.jpg) ![腾讯云](_images/qcloud-logo.jpg)

View File

@ -1,6 +1,6 @@
## Compose 命令说明 # Compose 命令说明
### 命令对象与格式 ## 命令对象与格式
对于 Compose 来说大部分命令的对象既可以是项目本身也可以指定为项目中的服务或者容器如果没有特别的说明命令对象将是项目这意味着项目中所有的服务都会受到命令影响 对于 Compose 来说大部分命令的对象既可以是项目本身也可以指定为项目中的服务或者容器如果没有特别的说明命令对象将是项目这意味着项目中所有的服务都会受到命令影响
@ -12,7 +12,7 @@
docker-compose [-f=<arg>...] [options] [COMMAND] [ARGS...] docker-compose [-f=<arg>...] [options] [COMMAND] [ARGS...]
``` ```
### 命令选项 ## 命令选项
* `-f, --file FILE` 指定使用的 Compose 模板文件默认为 `docker-compose.yml`可以多次指定 * `-f, --file FILE` 指定使用的 Compose 模板文件默认为 `docker-compose.yml`可以多次指定
@ -26,9 +26,9 @@ docker-compose [-f=<arg>...] [options] [COMMAND] [ARGS...]
* `-v, --version` 打印版本并退出 * `-v, --version` 打印版本并退出
### 命令使用说明 ## 命令使用说明
#### `build` ### `build`
格式为 `docker-compose build [options] [SERVICE...]` 格式为 `docker-compose build [options] [SERVICE...]`
@ -46,27 +46,27 @@ docker-compose [-f=<arg>...] [options] [COMMAND] [ARGS...]
* `--pull` 始终尝试通过 pull 来获取更新版本的镜像 * `--pull` 始终尝试通过 pull 来获取更新版本的镜像
#### `config` ### `config`
验证 Compose 文件格式是否正确若正确则显示配置若格式错误显示错误原因 验证 Compose 文件格式是否正确若正确则显示配置若格式错误显示错误原因
#### `down` ### `down`
此命令将会停止 `up` 命令所启动的容器并移除网络 此命令将会停止 `up` 命令所启动的容器并移除网络
#### `exec` ### `exec`
进入指定的容器 进入指定的容器
#### `help` ### `help`
获得一个命令的帮助 获得一个命令的帮助
#### `images` ### `images`
列出 Compose 文件中包含的镜像 列出 Compose 文件中包含的镜像
#### `kill` ### `kill`
格式为 `docker-compose kill [options] [SERVICE...]` 格式为 `docker-compose kill [options] [SERVICE...]`
@ -78,7 +78,7 @@ docker-compose [-f=<arg>...] [options] [COMMAND] [ARGS...]
$ docker-compose kill -s SIGINT $ docker-compose kill -s SIGINT
``` ```
#### `logs` ### `logs`
格式为 `docker-compose logs [options] [SERVICE...]` 格式为 `docker-compose logs [options] [SERVICE...]`
@ -86,13 +86,13 @@ $ docker-compose kill -s SIGINT
该命令在调试问题的时候十分有用 该命令在调试问题的时候十分有用
#### `pause` ### `pause`
格式为 `docker-compose pause [SERVICE...]` 格式为 `docker-compose pause [SERVICE...]`
暂停一个服务容器 暂停一个服务容器
#### `port` ### `port`
格式为 `docker-compose port [options] SERVICE PRIVATE_PORT` 格式为 `docker-compose port [options] SERVICE PRIVATE_PORT`
@ -104,7 +104,7 @@ $ docker-compose kill -s SIGINT
* `--index=index` 如果同一服务存在多个容器指定命令对象容器的序号默认为 1 * `--index=index` 如果同一服务存在多个容器指定命令对象容器的序号默认为 1
#### `ps` ### `ps`
格式为 `docker-compose ps [options] [SERVICE...]` 格式为 `docker-compose ps [options] [SERVICE...]`
@ -114,7 +114,7 @@ $ docker-compose kill -s SIGINT
* `-q` 只打印容器的 ID 信息 * `-q` 只打印容器的 ID 信息
#### `pull` ### `pull`
格式为 `docker-compose pull [options] [SERVICE...]` 格式为 `docker-compose pull [options] [SERVICE...]`
@ -124,11 +124,11 @@ $ docker-compose kill -s SIGINT
* `--ignore-pull-failures` 忽略拉取镜像过程中的错误 * `--ignore-pull-failures` 忽略拉取镜像过程中的错误
#### `push` ### `push`
推送服务依赖的镜像到 Docker 镜像仓库 推送服务依赖的镜像到 Docker 镜像仓库
#### `restart` ### `restart`
格式为 `docker-compose restart [options] [SERVICE...]` 格式为 `docker-compose restart [options] [SERVICE...]`
@ -138,7 +138,7 @@ $ docker-compose kill -s SIGINT
* `-t, --timeout TIMEOUT` 指定重启前停止容器的超时默认为 10 * `-t, --timeout TIMEOUT` 指定重启前停止容器的超时默认为 10
#### `rm` ### `rm`
格式为 `docker-compose rm [options] [SERVICE...]` 格式为 `docker-compose rm [options] [SERVICE...]`
@ -150,7 +150,7 @@ $ docker-compose kill -s SIGINT
* `-v` 删除容器所挂载的数据卷 * `-v` 删除容器所挂载的数据卷
#### `run` ### `run`
格式为 `docker-compose run [options] [-p PORT...] [-e KEY=VAL...] SERVICE [COMMAND] [ARGS...]` 格式为 `docker-compose run [options] [-p PORT...] [-e KEY=VAL...] SERVICE [COMMAND] [ARGS...]`
在指定服务上执行一个命令 在指定服务上执行一个命令
@ -203,7 +203,7 @@ $ docker-compose run --no-deps web python manage.py shell
* `-T` 不分配伪 tty意味着依赖 tty 的指令将无法运行 * `-T` 不分配伪 tty意味着依赖 tty 的指令将无法运行
#### `scale` ### `scale`
格式为 `docker-compose scale [options] [SERVICE=NUM...]` 格式为 `docker-compose scale [options] [SERVICE=NUM...]`
@ -223,13 +223,13 @@ $ docker-compose scale web=3 db=2
* `-t, --timeout TIMEOUT` 停止容器时候的超时默认为 10 * `-t, --timeout TIMEOUT` 停止容器时候的超时默认为 10
#### `start` ### `start`
格式为 `docker-compose start [SERVICE...]` 格式为 `docker-compose start [SERVICE...]`
启动已经存在的服务容器 启动已经存在的服务容器
#### `stop` ### `stop`
格式为 `docker-compose stop [options] [SERVICE...]` 格式为 `docker-compose stop [options] [SERVICE...]`
@ -239,17 +239,17 @@ $ docker-compose scale web=3 db=2
* `-t, --timeout TIMEOUT` 停止容器时候的超时默认为 10 * `-t, --timeout TIMEOUT` 停止容器时候的超时默认为 10
#### `top` ### `top`
查看各个服务容器内运行的进程 查看各个服务容器内运行的进程
#### `unpause` ### `unpause`
格式为 `docker-compose unpause [SERVICE...]` 格式为 `docker-compose unpause [SERVICE...]`
恢复处于暂停状态中的服务 恢复处于暂停状态中的服务
#### `up` ### `up`
格式为 `docker-compose up [options] [SERVICE...]` 格式为 `docker-compose up [options] [SERVICE...]`
@ -283,12 +283,12 @@ $ docker-compose scale web=3 db=2
* `-t, --timeout TIMEOUT` 停止容器时候的超时默认为 10 * `-t, --timeout TIMEOUT` 停止容器时候的超时默认为 10
#### `version` ### `version`
格式为 `docker-compose version` 格式为 `docker-compose version`
打印版本信息 打印版本信息
### 参考资料 ## 参考资料
* [官方文档](https://docs.docker.com/compose/reference/overview/) * [官方文档](https://docs.docker.com/compose/reference/overview/)

View File

@ -1,4 +1,4 @@
## Compose 模板文件 # Compose 模板文件
模板文件是使用 `Compose` 的核心涉及到的指令关键字也比较多但大家不用担心这里面大部分指令跟 `docker run` 相关参数的含义都是类似的 模板文件是使用 `Compose` 的核心涉及到的指令关键字也比较多但大家不用担心这里面大部分指令跟 `docker run` 相关参数的含义都是类似的
@ -22,7 +22,7 @@ services:
下面分别介绍各个指令的用法 下面分别介绍各个指令的用法
### `build` ## `build`
指定 `Dockerfile` 所在文件夹的路径可以是绝对路径或者相对 docker-compose.yml 文件的路径 `Compose` 将会利用它自动构建这个镜像然后使用这个镜像 指定 `Dockerfile` 所在文件夹的路径可以是绝对路径或者相对 docker-compose.yml 文件的路径 `Compose` 将会利用它自动构建这个镜像然后使用这个镜像
@ -62,7 +62,7 @@ build:
- corp/web_app:3.14 - corp/web_app:3.14
``` ```
### `cap_add, cap_drop` ## `cap_add, cap_drop`
指定容器的内核能力capacity分配 指定容器的内核能力capacity分配
@ -80,7 +80,7 @@ cap_drop:
- NET_ADMIN - NET_ADMIN
``` ```
### `command` ## `command`
覆盖容器启动后默认执行的命令 覆盖容器启动后默认执行的命令
@ -88,11 +88,11 @@ cap_drop:
command: echo "hello world" command: echo "hello world"
``` ```
### `configs` ## `configs`
仅用于 `Swarm mode`详细内容请查看 [`Swarm mode`](../swarm_mode/) 一节 仅用于 `Swarm mode`详细内容请查看 [`Swarm mode`](../swarm_mode/) 一节
### `cgroup_parent` ## `cgroup_parent`
指定父 `cgroup` 意味着将继承该组的资源限制 指定父 `cgroup` 意味着将继承该组的资源限制
@ -102,7 +102,7 @@ command: echo "hello world"
cgroup_parent: cgroups_1 cgroup_parent: cgroups_1
``` ```
### `container_name` ## `container_name`
指定容器名称默认将会使用 `项目名称_服务名称_序号` 这样的格式 指定容器名称默认将会使用 `项目名称_服务名称_序号` 这样的格式
@ -112,11 +112,11 @@ container_name: docker-web-container
>注意: 指定容器名称后该服务将无法进行扩展scale因为 Docker 不允许多个容器具有相同的名称 >注意: 指定容器名称后该服务将无法进行扩展scale因为 Docker 不允许多个容器具有相同的名称
### `deploy` ## `deploy`
仅用于 `Swarm mode`详细内容请查看 [`Swarm mode`](../swarm_mode/) 一节 仅用于 `Swarm mode`详细内容请查看 [`Swarm mode`](../swarm_mode/) 一节
### `devices` ## `devices`
指定设备映射关系 指定设备映射关系
@ -125,7 +125,7 @@ devices:
- "/dev/ttyUSB1:/dev/ttyUSB0" - "/dev/ttyUSB1:/dev/ttyUSB0"
``` ```
### `depends_on` ## `depends_on`
解决容器的依赖启动先后的问题以下例子中会先启动 `redis` `db` 再启动 `web` 解决容器的依赖启动先后的问题以下例子中会先启动 `redis` `db` 再启动 `web`
@ -148,7 +148,7 @@ services:
>注意`web` 服务不会等待 `redis` `db` 完全启动之后才启动 >注意`web` 服务不会等待 `redis` `db` 完全启动之后才启动
### `dns` ## `dns`
自定义 `DNS` 服务器可以是一个值也可以是一个列表 自定义 `DNS` 服务器可以是一个值也可以是一个列表
@ -160,7 +160,7 @@ dns:
- 114.114.114.114 - 114.114.114.114
``` ```
### `dns_search` ## `dns_search`
配置 `DNS` 搜索域可以是一个值也可以是一个列表 配置 `DNS` 搜索域可以是一个值也可以是一个列表
@ -172,7 +172,7 @@ dns_search:
- domain2.example.com - domain2.example.com
``` ```
### `tmpfs` ## `tmpfs`
挂载一个 tmpfs 文件系统到容器 挂载一个 tmpfs 文件系统到容器
@ -183,7 +183,7 @@ tmpfs:
- /tmp - /tmp
``` ```
### `env_file` ## `env_file`
从文件中获取环境变量可以为单独的文件路径或列表 从文件中获取环境变量可以为单独的文件路径或列表
@ -207,7 +207,7 @@ env_file:
PROG_ENV=development PROG_ENV=development
``` ```
### `environment` ## `environment`
设置环境变量你可以使用数组或字典两种格式 设置环境变量你可以使用数组或字典两种格式
@ -229,7 +229,7 @@ environment:
y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF
``` ```
### `expose` ## `expose`
暴露端口但不映射到宿主机只被连接的服务访问 暴露端口但不映射到宿主机只被连接的服务访问
@ -241,7 +241,7 @@ expose:
- "8000" - "8000"
``` ```
### `external_links` ## `external_links`
>注意不建议使用该指令 >注意不建议使用该指令
@ -254,7 +254,7 @@ external_links:
- project_db_1:postgresql - project_db_1:postgresql
``` ```
### `extra_hosts` ## `extra_hosts`
类似 Docker 中的 `--add-host` 参数指定额外的 host 名称映射信息 类似 Docker 中的 `--add-host` 参数指定额外的 host 名称映射信息
@ -271,7 +271,7 @@ extra_hosts:
52.1.157.61 dockerhub 52.1.157.61 dockerhub
``` ```
### `healthcheck` ## `healthcheck`
通过命令检查容器是否健康运行 通过命令检查容器是否健康运行
@ -283,7 +283,7 @@ healthcheck:
retries: 3 retries: 3
``` ```
### `image` ## `image`
指定为镜像名称或镜像 ID如果镜像在本地不存在`Compose` 将会尝试拉取这个镜像 指定为镜像名称或镜像 ID如果镜像在本地不存在`Compose` 将会尝试拉取这个镜像
@ -293,7 +293,7 @@ image: orchardup/postgresql
image: a4bc65fd image: a4bc65fd
``` ```
### `labels` ## `labels`
为容器添加 Docker 元数据metadata信息例如可以为容器添加辅助说明信息 为容器添加 Docker 元数据metadata信息例如可以为容器添加辅助说明信息
@ -304,11 +304,11 @@ labels:
com.startupteam.release: "rc3 for v1.0" com.startupteam.release: "rc3 for v1.0"
``` ```
### `links` ## `links`
>注意不推荐使用该指令 >注意不推荐使用该指令
### `logging` ## `logging`
配置日志选项 配置日志选项
@ -335,7 +335,7 @@ options:
max-file: "10" max-file: "10"
``` ```
### `network_mode` ## `network_mode`
设置网络模式使用和 `docker run` `--network` 参数一样的值 设置网络模式使用和 `docker run` `--network` 参数一样的值
@ -347,7 +347,7 @@ network_mode: "service:[service name]"
network_mode: "container:[container name/id]" network_mode: "container:[container name/id]"
``` ```
### `networks` ## `networks`
配置容器连接的网络 配置容器连接的网络
@ -365,7 +365,7 @@ networks:
other-network: other-network:
``` ```
### `pid` ## `pid`
跟主机系统共享进程命名空间打开该选项的容器之间以及容器和宿主机系统之间可以通过进程 ID 来相互访问和操作 跟主机系统共享进程命名空间打开该选项的容器之间以及容器和宿主机系统之间可以通过进程 ID 来相互访问和操作
@ -373,7 +373,7 @@ networks:
pid: "host" pid: "host"
``` ```
### `ports` ## `ports`
暴露端口信息 暴露端口信息
@ -389,7 +389,7 @@ ports:
*注意当使用 `HOST:CONTAINER` 格式来映射端口时如果你使用的容器端口小于 60 并且没放到引号里可能会得到错误结果因为 `YAML` 会自动解析 `xx:yy` 这种数字格式为 60 进制为避免出现这种问题建议数字串都采用引号包括起来的字符串格式* *注意当使用 `HOST:CONTAINER` 格式来映射端口时如果你使用的容器端口小于 60 并且没放到引号里可能会得到错误结果因为 `YAML` 会自动解析 `xx:yy` 这种数字格式为 60 进制为避免出现这种问题建议数字串都采用引号包括起来的字符串格式*
### `secrets` ## `secrets`
存储敏感数据例如 `mysql` 服务密码 存储敏感数据例如 `mysql` 服务密码
@ -412,7 +412,7 @@ secrets:
external: true external: true
``` ```
### `security_opt` ## `security_opt`
指定容器模板标签label机制的默认属性用户角色类型级别等例如配置标签的用户名和角色名 指定容器模板标签label机制的默认属性用户角色类型级别等例如配置标签的用户名和角色名
@ -422,7 +422,7 @@ security_opt:
- label:role:ROLE - label:role:ROLE
``` ```
### `stop_signal` ## `stop_signal`
设置另一个信号来停止容器在默认情况下使用的是 SIGTERM 停止容器 设置另一个信号来停止容器在默认情况下使用的是 SIGTERM 停止容器
@ -430,7 +430,7 @@ security_opt:
stop_signal: SIGUSR1 stop_signal: SIGUSR1
``` ```
### `sysctls` ## `sysctls`
配置容器内核参数 配置容器内核参数
@ -444,7 +444,7 @@ sysctls:
- net.ipv4.tcp_syncookies=0 - net.ipv4.tcp_syncookies=0
``` ```
### `ulimits` ## `ulimits`
指定容器的 ulimits 限制值 指定容器的 ulimits 限制值
@ -458,7 +458,7 @@ sysctls:
hard: 40000 hard: 40000
``` ```
### `volumes` ## `volumes`
数据卷所挂载路径设置可以设置为宿主机路径(`HOST:CONTAINER`)或者数据卷名称(`VOLUME:CONTAINER`)并且可以设置访问模式 `HOST:CONTAINER:ro` 数据卷所挂载路径设置可以设置为宿主机路径(`HOST:CONTAINER`)或者数据卷名称(`VOLUME:CONTAINER`)并且可以设置访问模式 `HOST:CONTAINER:ro`
@ -486,7 +486,7 @@ volumes:
mysql_data: mysql_data:
``` ```
### 其它指令 ## 其它指令
此外还有包括 `domainname, entrypoint, hostname, ipc, mac_address, privileged, read_only, shm_size, restart, stdin_open, tty, user, working_dir` 等指令基本跟 `docker run` 中对应参数的功能一致 此外还有包括 `domainname, entrypoint, hostname, ipc, mac_address, privileged, read_only, shm_size, restart, stdin_open, tty, user, working_dir` 等指令基本跟 `docker run` 中对应参数的功能一致
@ -546,7 +546,7 @@ stdin_open: true
tty: true tty: true
``` ```
### 读取变量 ## 读取变量
Compose 模板文件支持动态读取主机的系统环境变量和当前目录下的 `.env` 文件中的变量 Compose 模板文件支持动态读取主机的系统环境变量和当前目录下的 `.env` 文件中的变量
@ -573,6 +573,6 @@ MONGO_VERSION=3.6
执行 `docker-compose up` 则会启动一个 `mongo:3.6` 镜像的容器 执行 `docker-compose up` 则会启动一个 `mongo:3.6` 镜像的容器
### 参考资料 ## 参考资料
* [官方文档](https://docs.docker.com/compose/compose-file/) * [官方文档](https://docs.docker.com/compose/compose-file/)

View File

@ -1,4 +1,4 @@
## 使用 Django # 使用 Django
> 本小节内容适合 `Python` 开发人员阅读 > 本小节内容适合 `Python` 开发人员阅读

View File

@ -1,4 +1,4 @@
## 安装与卸载 # 安装与卸载
`Compose` 支持 LinuxmacOSWindows 10 三大平台 `Compose` 支持 LinuxmacOSWindows 10 三大平台
@ -14,7 +14,7 @@ docker-compose version 1.24.1, build 4667896b
Linux 系统请使用以下介绍的方法安装 Linux 系统请使用以下介绍的方法安装
### 二进制包 ## 二进制包
Linux 上的也安装十分简单 [官方 GitHub Release](https://github.com/docker/compose/releases) 处直接下载编译好的二进制文件即可。 Linux 上的也安装十分简单 [官方 GitHub Release](https://github.com/docker/compose/releases) 处直接下载编译好的二进制文件即可。
@ -26,7 +26,7 @@ $ sudo curl -L https://github.com/docker/compose/releases/download/1.24.1/docker
$ sudo chmod +x /usr/local/bin/docker-compose $ sudo chmod +x /usr/local/bin/docker-compose
``` ```
### PIP 安装 ## PIP 安装
** `x86_64` 架构的 Linux 建议按照上边的方法下载二进制包进行安装如果您计算机的架构是 `ARM` (例如树莓派)再使用 `pip` 安装 ** `x86_64` 架构的 Linux 建议按照上边的方法下载二进制包进行安装如果您计算机的架构是 `ARM` (例如树莓派)再使用 `pip` 安装
@ -47,13 +47,13 @@ Collecting docker-compose
Successfully installed docker-compose cached-property requests texttable websocket-client docker-py dockerpty six enum34 backports.ssl-match-hostname ipaddress Successfully installed docker-compose cached-property requests texttable websocket-client docker-py dockerpty six enum34 backports.ssl-match-hostname ipaddress
``` ```
### bash 补全命令 ## bash 补全命令
```bash ```bash
$ curl -L https://raw.githubusercontent.com/docker/compose/1.24.1/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose $ curl -L https://raw.githubusercontent.com/docker/compose/1.24.1/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose
``` ```
### 卸载 ## 卸载
如果是二进制包方式安装的删除二进制文件即可 如果是二进制包方式安装的删除二进制文件即可

View File

@ -1,4 +1,4 @@
## Compose 简介 # Compose 简介
`Compose` 项目是 Docker 官方的开源项目负责实现对 Docker 容器集群的快速编排从功能上看 `OpenStack` 中的 `Heat` 十分类似 `Compose` 项目是 Docker 官方的开源项目负责实现对 Docker 容器集群的快速编排从功能上看 `OpenStack` 中的 `Heat` 十分类似

View File

@ -1,4 +1,4 @@
## 使用 Rails # 使用 Rails
> 本小节内容适合 `Ruby` 开发人员阅读 > 本小节内容适合 `Ruby` 开发人员阅读

View File

@ -1,6 +1,6 @@
## 使用 # 使用
### 术语 ## 术语
首先介绍几个术语 首先介绍几个术语
@ -10,13 +10,13 @@
可见一个项目可以由多个服务容器关联而成`Compose` 面向项目进行管理 可见一个项目可以由多个服务容器关联而成`Compose` 面向项目进行管理
### 场景 ## 场景
最常见的项目是 web 网站该项目应该包含 web 应用和缓存 最常见的项目是 web 网站该项目应该包含 web 应用和缓存
下面我们用 `Python` 来建立一个能够记录页面访问次数的 web 网站 下面我们用 `Python` 来建立一个能够记录页面访问次数的 web 网站
#### web 应用 ### web 应用
新建文件夹在该目录中编写 `app.py` 文件 新建文件夹在该目录中编写 `app.py` 文件
@ -36,7 +36,7 @@ if __name__ == "__main__":
app.run(host="0.0.0.0", debug=True) app.run(host="0.0.0.0", debug=True)
``` ```
#### Dockerfile ### Dockerfile
编写 `Dockerfile` 文件内容为 编写 `Dockerfile` 文件内容为
@ -48,7 +48,7 @@ RUN pip install redis flask
CMD ["python", "app.py"] CMD ["python", "app.py"]
``` ```
#### docker-compose.yml ### docker-compose.yml
编写 `docker-compose.yml` 文件这个是 Compose 使用的主模板文件 编写 `docker-compose.yml` 文件这个是 Compose 使用的主模板文件
@ -65,7 +65,7 @@ services:
image: "redis:alpine" image: "redis:alpine"
``` ```
#### 运行 compose 项目 ### 运行 compose 项目
```bash ```bash
$ docker-compose up $ docker-compose up

View File

@ -1,14 +1,14 @@
## 使用 WordPress # 使用 WordPress
> 本小节内容适合 `PHP` 开发人员阅读 > 本小节内容适合 `PHP` 开发人员阅读
`Compose` 可以很便捷的让 `Wordpress` 运行在一个独立的环境中 `Compose` 可以很便捷的让 `Wordpress` 运行在一个独立的环境中
### 创建空文件夹 ## 创建空文件夹
假设新建一个名为 `wordpress` 的文件夹然后进入这个文件夹 假设新建一个名为 `wordpress` 的文件夹然后进入这个文件夹
### 创建 `docker-compose.yml` 文件 ## 创建 `docker-compose.yml` 文件
[`docker-compose.yml`](https://github.com/yeasy/docker_practice/blob/master/compose/demo/wordpress/docker-compose.yml) 文件将开启一个 `wordpress` 服务和一个独立的 `MySQL` 实例: [`docker-compose.yml`](https://github.com/yeasy/docker_practice/blob/master/compose/demo/wordpress/docker-compose.yml) 文件将开启一个 `wordpress` 服务和一个独立的 `MySQL` 实例:
@ -46,6 +46,6 @@ volumes:
db_data: db_data:
``` ```
### 构建并运行项目 ## 构建并运行项目
运行 `docker-compose up -d` Compose 就会拉取镜像再创建我们所需要的镜像然后启动 `wordpress` 和数据库容器 接着浏览器访问 `127.0.0.1:8000` 端口就能看到 `WordPress` 安装界面了 运行 `docker-compose up -d` Compose 就会拉取镜像再创建我们所需要的镜像然后启动 `wordpress` 和数据库容器 接着浏览器访问 `127.0.0.1:8000` 端口就能看到 `WordPress` 安装界面了

View File

@ -34,21 +34,7 @@ $ docker run -it --rm username/test
我们可以使用 `$ docker manifest inspect golang:alpine` 查看这个 `manifest` 列表的结构 我们可以使用 `$ docker manifest inspect golang:alpine` 查看这个 `manifest` 列表的结构
由于该命令属于实验特性必须设置如下 **环境变量** 之后才能使用 > 该命令属于实验特性请参考 [开启实验特性](../install/experimental) 一节
```bash
# LinuxmacOS
$ export DOCKER_CLI_EXPERIMENTAL=enabled
# Windows
$ set $env:DOCKER_CLI_EXPERIMENTAL=enabled
```
> 以上是设置环境变量的临时方法若使环境变量永久生效请读者自行设置
设置之后执行结果如下
```bash ```bash
$ docker manifest inspect golang:alpine $ docker manifest inspect golang:alpine

View File

@ -1,14 +1,14 @@
## CentOS 安装 Docker CE # CentOS 安装 Docker CE
>警告切勿在没有配置 Docker YUM 源的情况下直接使用 yum 命令安装 Docker. >警告切勿在没有配置 Docker YUM 源的情况下直接使用 yum 命令安装 Docker.
### 准备工作 ## 准备工作
#### 系统要求 ### 系统要求
Docker CE 支持 64 位版本 CentOS 7并且要求内核版本不低于 3.10 CentOS 7 满足最低内核的要求但由于内核版本比较低部分功能 `overlay2` 存储层驱动无法使用并且部分功能可能不太稳定 Docker CE 支持 64 位版本 CentOS 7并且要求内核版本不低于 3.10 CentOS 7 满足最低内核的要求但由于内核版本比较低部分功能 `overlay2` 存储层驱动无法使用并且部分功能可能不太稳定
#### 卸载旧版本 ### 卸载旧版本
旧版本的 Docker 称为 `docker` 或者 `docker-engine`使用以下命令卸载旧版本 旧版本的 Docker 称为 `docker` 或者 `docker-engine`使用以下命令卸载旧版本
@ -25,7 +25,7 @@ $ sudo yum remove docker \
docker-engine docker-engine
``` ```
### 使用 yum 安装 ## 使用 yum 安装
执行以下命令安装依赖包 执行以下命令安装依赖包
@ -63,7 +63,7 @@ $ sudo yum-config-manager --enable docker-ce-test
$ sudo yum-config-manager --enable docker-ce-nightly $ sudo yum-config-manager --enable docker-ce-nightly
``` ```
#### 安装 Docker CE ### 安装 Docker CE
更新 `yum` 软件源缓存并安装 `docker-ce` 更新 `yum` 软件源缓存并安装 `docker-ce`
@ -72,7 +72,7 @@ $ sudo yum makecache fast
$ sudo yum install docker-ce $ sudo yum install docker-ce
``` ```
### 使用脚本自动安装 ## 使用脚本自动安装
在测试或开发环境中 Docker 官方为了简化安装流程提供了一套便捷的安装脚本CentOS 系统上可以使用这套脚本安装另外可以通过 `--mirror` 选项使用国内源进行安装 在测试或开发环境中 Docker 官方为了简化安装流程提供了一套便捷的安装脚本CentOS 系统上可以使用这套脚本安装另外可以通过 `--mirror` 选项使用国内源进行安装
@ -84,14 +84,14 @@ $ sudo sh get-docker.sh --mirror Aliyun
执行这个命令后脚本就会自动的将一切准备工作做好并且把 Docker CE 的稳定(stable)版本安装在系统中 执行这个命令后脚本就会自动的将一切准备工作做好并且把 Docker CE 的稳定(stable)版本安装在系统中
### 启动 Docker CE ## 启动 Docker CE
```bash ```bash
$ sudo systemctl enable docker $ sudo systemctl enable docker
$ sudo systemctl start docker $ sudo systemctl start docker
``` ```
### 建立 docker 用户组 ## 建立 docker 用户组
默认情况下`docker` 命令会使用 [Unix socket](https://en.wikipedia.org/wiki/Unix_domain_socket) 与 Docker 引擎通讯。而只有 `root` 用户和 `docker` 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑一般 Linux 系统上不会直接使用 `root` 用户。因此,更好地做法是将需要使用 `docker` 的用户加入 `docker` 用户组。 默认情况下`docker` 命令会使用 [Unix socket](https://en.wikipedia.org/wiki/Unix_domain_socket) 与 Docker 引擎通讯。而只有 `root` 用户和 `docker` 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑一般 Linux 系统上不会直接使用 `root` 用户。因此,更好地做法是将需要使用 `docker` 的用户加入 `docker` 用户组。
@ -109,7 +109,7 @@ $ sudo usermod -aG docker $USER
退出当前终端并重新登录进行如下测试 退出当前终端并重新登录进行如下测试
### 测试 Docker 是否安装正确 ## 测试 Docker 是否安装正确
```bash ```bash
$ docker run hello-world $ docker run hello-world
@ -144,11 +144,11 @@ For more examples and ideas, visit:
若能正常输出以上信息则说明安装成功 若能正常输出以上信息则说明安装成功
### 镜像加速 ## 镜像加速
如果在使用过程中发现拉取 Docker 镜像十分缓慢可以配置 Docker [国内镜像加速](mirror.md) 如果在使用过程中发现拉取 Docker 镜像十分缓慢可以配置 Docker [国内镜像加速](mirror.md)
### 添加内核参数 ## 添加内核参数
如果在 CentOS 使用 Docker CE 看到下面的这些警告信息 如果在 CentOS 使用 Docker CE 看到下面的这些警告信息
@ -172,6 +172,6 @@ EOF
$ sudo sysctl -p $ sudo sysctl -p
``` ```
### 参考文档 ## 参考文档
* [Docker 官方 CentOS 安装文档](https://docs.docker.com/install/linux/docker-ce/centos/)。 * [Docker 官方 CentOS 安装文档](https://docs.docker.com/install/linux/docker-ce/centos/)。

View File

@ -1,17 +1,17 @@
## Debian 安装 Docker CE # Debian 安装 Docker CE
>警告切勿在没有配置 Docker APT 源的情况下直接使用 apt 命令安装 Docker. >警告切勿在没有配置 Docker APT 源的情况下直接使用 apt 命令安装 Docker.
### 准备工作 ## 准备工作
#### 系统要求 ### 系统要求
Docker CE 支持以下版本的 [Debian](https://www.debian.org/intro/about) 操作系统: Docker CE 支持以下版本的 [Debian](https://www.debian.org/intro/about) 操作系统:
* Buster 10 * Buster 10
* Stretch 9 * Stretch 9
#### 卸载旧版本 ### 卸载旧版本
旧版本的 Docker 称为 `docker` 或者 `docker-engine`使用以下命令卸载旧版本 旧版本的 Docker 称为 `docker` 或者 `docker-engine`使用以下命令卸载旧版本
@ -21,7 +21,7 @@ $ sudo apt-get remove docker \
docker.io docker.io
``` ```
### 使用 APT 安装 ## 使用 APT 安装
由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改因此我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书 由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改因此我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书
@ -66,7 +66,7 @@ $ sudo add-apt-repository \
>以上命令会添加稳定版本的 Docker CE APT 如果需要测试或每日构建版本的 Docker CE 请将 stable 改为 test 或者 nightly >以上命令会添加稳定版本的 Docker CE APT 如果需要测试或每日构建版本的 Docker CE 请将 stable 改为 test 或者 nightly
#### 安装 Docker CE ### 安装 Docker CE
更新 apt 软件包缓存并安装 `docker-ce` 更新 apt 软件包缓存并安装 `docker-ce`
@ -76,7 +76,7 @@ $ sudo apt-get update
$ sudo apt-get install docker-ce $ sudo apt-get install docker-ce
``` ```
### 使用脚本自动安装 ## 使用脚本自动安装
在测试或开发环境中 Docker 官方为了简化安装流程提供了一套便捷的安装脚本Debian 系统上可以使用这套脚本安装另外可以通过 `--mirror` 选项使用国内源进行安装 在测试或开发环境中 Docker 官方为了简化安装流程提供了一套便捷的安装脚本Debian 系统上可以使用这套脚本安装另外可以通过 `--mirror` 选项使用国内源进行安装
@ -88,14 +88,14 @@ $ sudo sh get-docker.sh --mirror Aliyun
执行这个命令后脚本就会自动的将一切准备工作做好并且把 Docker CE 的稳定(stable)版本安装在系统中 执行这个命令后脚本就会自动的将一切准备工作做好并且把 Docker CE 的稳定(stable)版本安装在系统中
### 启动 Docker CE ## 启动 Docker CE
```bash ```bash
$ sudo systemctl enable docker $ sudo systemctl enable docker
$ sudo systemctl start docker $ sudo systemctl start docker
``` ```
### 建立 docker 用户组 ## 建立 docker 用户组
默认情况下`docker` 命令会使用 [Unix socket](https://en.wikipedia.org/wiki/Unix_domain_socket) 与 Docker 引擎通讯。而只有 `root` 用户和 `docker` 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑一般 Linux 系统上不会直接使用 `root` 用户。因此,更好地做法是将需要使用 `docker` 的用户加入 `docker` 用户组。 默认情况下`docker` 命令会使用 [Unix socket](https://en.wikipedia.org/wiki/Unix_domain_socket) 与 Docker 引擎通讯。而只有 `root` 用户和 `docker` 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑一般 Linux 系统上不会直接使用 `root` 用户。因此,更好地做法是将需要使用 `docker` 的用户加入 `docker` 用户组。
@ -113,7 +113,7 @@ $ sudo usermod -aG docker $USER
退出当前终端并重新登录进行如下测试 退出当前终端并重新登录进行如下测试
### 测试 Docker 是否安装正确 ## 测试 Docker 是否安装正确
```bash ```bash
$ docker run hello-world $ docker run hello-world
@ -148,10 +148,10 @@ For more examples and ideas, visit:
若能正常输出以上信息则说明安装成功 若能正常输出以上信息则说明安装成功
### 镜像加速 ## 镜像加速
如果在使用过程中发现拉取 Docker 镜像十分缓慢可以配置 Docker [国内镜像加速](mirror.md) 如果在使用过程中发现拉取 Docker 镜像十分缓慢可以配置 Docker [国内镜像加速](mirror.md)
### 参考文档 ## 参考文档
* [Docker 官方 Debian 安装文档](https://docs.docker.com/install/linux/docker-ce/debian/) * [Docker 官方 Debian 安装文档](https://docs.docker.com/install/linux/docker-ce/debian/)

View File

@ -1,10 +1,10 @@
## Fedora 安装 Docker CE # Fedora 安装 Docker CE
>警告切勿在没有配置 Docker dnf 源的情况下直接使用 dnf 命令安装 Docker. >警告切勿在没有配置 Docker dnf 源的情况下直接使用 dnf 命令安装 Docker.
### 准备工作 ## 准备工作
#### 系统要求 ### 系统要求
Docker CE 支持以下版本的 [Fedora](https://fedoraproject.org/) 操作系统: Docker CE 支持以下版本的 [Fedora](https://fedoraproject.org/) 操作系统:
@ -12,7 +12,7 @@ Docker CE 支持以下版本的 [Fedora](https://fedoraproject.org/) 操作系
* 29 * 29
* 30 * 30
#### 卸载旧版本 ### 卸载旧版本
旧版本的 Docker 称为 `docker` 或者 `docker-engine`使用以下命令卸载旧版本 旧版本的 Docker 称为 `docker` 或者 `docker-engine`使用以下命令卸载旧版本
@ -29,7 +29,7 @@ $ sudo dnf remove docker \
docker-engine docker-engine
``` ```
### 使用 dnf 安装 ## 使用 dnf 安装
执行以下命令安装依赖包 执行以下命令安装依赖包
@ -71,7 +71,7 @@ $ sudo dnf config-manager --set-enabled docker-ce-nightly
$ sudo dnf config-manager --set-disabled docker-ce-test $ sudo dnf config-manager --set-disabled docker-ce-test
``` ```
#### 安装 Docker CE ### 安装 Docker CE
更新 `dnf` 软件源缓存并安装 `docker-ce` 更新 `dnf` 软件源缓存并安装 `docker-ce`
@ -90,7 +90,7 @@ docker-ce.x86_64 18.06.1.ce-3.fc28 docker-ce-stable
$ sudo dnf -y install docker-ce-18.06.1.ce $ sudo dnf -y install docker-ce-18.06.1.ce
``` ```
### 使用脚本自动安装 ## 使用脚本自动安装
在测试或开发环境中 Docker 官方为了简化安装流程提供了一套便捷的安装脚本Debian 系统上可以使用这套脚本安装另外可以通过 `--mirror` 选项使用国内源进行安装 在测试或开发环境中 Docker 官方为了简化安装流程提供了一套便捷的安装脚本Debian 系统上可以使用这套脚本安装另外可以通过 `--mirror` 选项使用国内源进行安装
@ -102,14 +102,14 @@ $ sudo sh get-docker.sh --mirror Aliyun
执行这个命令后脚本就会自动的将一切准备工作做好并且把 Docker CE 最新稳定(stable)版本安装在系统中 执行这个命令后脚本就会自动的将一切准备工作做好并且把 Docker CE 最新稳定(stable)版本安装在系统中
### 启动 Docker CE ## 启动 Docker CE
```bash ```bash
$ sudo systemctl enable docker $ sudo systemctl enable docker
$ sudo systemctl start docker $ sudo systemctl start docker
``` ```
### 建立 docker 用户组 ## 建立 docker 用户组
默认情况下`docker` 命令会使用 [Unix socket](https://en.wikipedia.org/wiki/Unix_domain_socket) 与 Docker 引擎通讯。而只有 `root` 用户和 `docker` 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑一般 Linux 系统上不会直接使用 `root` 用户。因此,更好地做法是将需要使用 `docker` 的用户加入 `docker` 用户组。 默认情况下`docker` 命令会使用 [Unix socket](https://en.wikipedia.org/wiki/Unix_domain_socket) 与 Docker 引擎通讯。而只有 `root` 用户和 `docker` 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑一般 Linux 系统上不会直接使用 `root` 用户。因此,更好地做法是将需要使用 `docker` 的用户加入 `docker` 用户组。
@ -127,7 +127,7 @@ $ sudo usermod -aG docker $USER
退出当前终端并重新登录进行如下测试 退出当前终端并重新登录进行如下测试
### 测试 Docker 是否安装正确 ## 测试 Docker 是否安装正确
```bash ```bash
$ docker run hello-world $ docker run hello-world
@ -162,10 +162,10 @@ For more examples and ideas, visit:
若能正常输出以上信息则说明安装成功 若能正常输出以上信息则说明安装成功
### 镜像加速 ## 镜像加速
如果在使用过程中发现拉取 Docker 镜像十分缓慢可以配置 Docker [国内镜像加速](mirror.md) 如果在使用过程中发现拉取 Docker 镜像十分缓慢可以配置 Docker [国内镜像加速](mirror.md)
### 参考文档 ## 参考文档
* [Docker 官方 Fedora 安装文档](https://docs.docker.com/install/linux/docker-ce/fedora)。 * [Docker 官方 Fedora 安装文档](https://docs.docker.com/install/linux/docker-ce/fedora)。

View File

@ -1,12 +1,12 @@
## macOS 安装 Docker Desktop CE # macOS 安装 Docker Desktop CE
### 系统要求 ## 系统要求
[Docker Desktop for Mac](https://docs.docker.com/docker-for-mac/) 要求系统最低为 macOS Sierra 10.12。 [Docker Desktop for Mac](https://docs.docker.com/docker-for-mac/) 要求系统最低为 macOS Sierra 10.12。
### 安装 ## 安装
#### 使用 Homebrew 安装 ### 使用 Homebrew 安装
[Homebrew](https://brew.sh/) 的 [Cask](https://caskroom.github.io/) 已经支持 Docker Desktop for Mac因此可以很方便的使用 Homebrew Cask 来进行安装: [Homebrew](https://brew.sh/) 的 [Cask](https://caskroom.github.io/) 已经支持 Docker Desktop for Mac因此可以很方便的使用 Homebrew Cask 来进行安装:
@ -14,7 +14,7 @@
$ brew cask install docker $ brew cask install docker
``` ```
#### 手动下载安装 ### 手动下载安装
如果需要手动下载请点击以下链接下载 [Stable](https://download.docker.com/mac/stable/Docker.dmg) 或 [Edge](https://download.docker.com/mac/edge/Docker.dmg) 版本的 Docker Desktop for Mac。 如果需要手动下载请点击以下链接下载 [Stable](https://download.docker.com/mac/stable/Docker.dmg) 或 [Edge](https://download.docker.com/mac/edge/Docker.dmg) 版本的 Docker Desktop for Mac。
@ -22,7 +22,7 @@ $ brew cask install docker
![](_images/install-mac-dmg.png) ![](_images/install-mac-dmg.png)
### 运行 ## 运行
从应用中找到 Docker 图标并点击运行 从应用中找到 Docker 图标并点击运行
@ -68,10 +68,10 @@ $ docker stop webserver
$ docker rm webserver $ docker rm webserver
``` ```
### 镜像加速 ## 镜像加速
如果在使用过程中发现拉取 Docker 镜像十分缓慢可以配置 Docker [国内镜像加速](mirror.md) 如果在使用过程中发现拉取 Docker 镜像十分缓慢可以配置 Docker [国内镜像加速](mirror.md)
### 参考链接 ## 参考链接
* [官方文档](https://docs.docker.com/docker-for-mac/install/) * [官方文档](https://docs.docker.com/docker-for-mac/install/)

View File

@ -1,4 +1,4 @@
## 镜像加速器 # 镜像加速器
国内从 Docker Hub 拉取镜像有时会遇到困难此时可以配置镜像加速器国内很多云服务商都提供了国内加速器服务例如 国内从 Docker Hub 拉取镜像有时会遇到困难此时可以配置镜像加速器国内很多云服务商都提供了国内加速器服务例如
@ -12,7 +12,7 @@
本节我们以 Azure 中国镜像 `https://dockerhub.azk8s.cn` 为例进行介绍 本节我们以 Azure 中国镜像 `https://dockerhub.azk8s.cn` 为例进行介绍
### Ubuntu 16.04+Debian 8+CentOS 7 ## Ubuntu 16.04+Debian 8+CentOS 7
对于使用 [systemd](https://www.freedesktop.org/wiki/Software/systemd/) 的系统,请在 `/etc/docker/daemon.json` 中写入如下内容(如果文件不存在请新建该文件) 对于使用 [systemd](https://www.freedesktop.org/wiki/Software/systemd/) 的系统,请在 `/etc/docker/daemon.json` 中写入如下内容(如果文件不存在请新建该文件)
@ -36,7 +36,7 @@ $ sudo systemctl restart docker
>注意如果您之前查看旧教程修改了 `docker.service` 文件内容请去掉您添加的内容`--registry-mirror=https://dockerhub.azk8s.cn` >注意如果您之前查看旧教程修改了 `docker.service` 文件内容请去掉您添加的内容`--registry-mirror=https://dockerhub.azk8s.cn`
### Windows 10 ## Windows 10
对于使用 `Windows 10` 的用户在任务栏托盘 Docker 图标内右键菜单选择 `Settings`打开配置窗口后在左侧导航菜单选择 `Docker Engine`在右侧像下边一样编辑 json 文件之后点击 `Apply & Restart` 保存后 Docker 就会重启并应用配置的镜像地址了 对于使用 `Windows 10` 的用户在任务栏托盘 Docker 图标内右键菜单选择 `Settings`打开配置窗口后在左侧导航菜单选择 `Docker Engine`在右侧像下边一样编辑 json 文件之后点击 `Apply & Restart` 保存后 Docker 就会重启并应用配置的镜像地址了
@ -49,7 +49,7 @@ $ sudo systemctl restart docker
} }
``` ```
### macOS ## macOS
对于使用 macOS 的用户在任务栏点击 Docker Desktop 应用图标 -> `Perferences`在左侧导航菜单选择 `Docker Engine`在右侧像下边一样编辑 json 文件修改完成之后点击 `Apply & Restart` 按钮Docker 就会重启并应用配置的镜像地址了 对于使用 macOS 的用户在任务栏点击 Docker Desktop 应用图标 -> `Perferences`在左侧导航菜单选择 `Docker Engine`在右侧像下边一样编辑 json 文件修改完成之后点击 `Apply & Restart` 按钮Docker 就会重启并应用配置的镜像地址了
@ -62,7 +62,7 @@ $ sudo systemctl restart docker
} }
``` ```
### 检查加速器是否生效 ## 检查加速器是否生效
执行 `$ docker info`如果从结果中看到了如下内容说明配置成功 执行 `$ docker info`如果从结果中看到了如下内容说明配置成功
@ -71,7 +71,7 @@ Registry Mirrors:
https://dockerhub.azk8s.cn/ https://dockerhub.azk8s.cn/
``` ```
### gcr.io 镜像 ## gcr.io 镜像
国内无法直接获取 `gcr.io/*` 镜像我们可以将 `gcr.io/<repo-name>/<image-name>:<version>` 替换为 `gcr.azk8s.cn/<repo-name>/<image-name>:<version>` ,例如 国内无法直接获取 `gcr.io/*` 镜像我们可以将 `gcr.io/<repo-name>/<image-name>:<version>` 替换为 `gcr.azk8s.cn/<repo-name>/<image-name>:<version>` ,例如

View File

@ -1,8 +1,8 @@
## 树莓派卡片电脑安装 Docker CE # 树莓派卡片电脑安装 Docker CE
>警告切勿在没有配置 Docker APT 源的情况下直接使用 apt 命令安装 Docker. >警告切勿在没有配置 Docker APT 源的情况下直接使用 apt 命令安装 Docker.
### 系统要求 ## 系统要求
Docker CE 不仅支持 `x86_64` 架构的计算机同时也支持 `ARM` 架构的计算机本小节内容以树莓派单片电脑为例讲解 `ARM` 架构安装 Docker CE Docker CE 不仅支持 `x86_64` 架构的计算机同时也支持 `ARM` 架构的计算机本小节内容以树莓派单片电脑为例讲解 `ARM` 架构安装 Docker CE
@ -12,7 +12,7 @@ Docker CE 支持以下版本的 [Raspbian](https://www.raspberrypi.org/downloads
** `Raspbian` 是树莓派的开发与维护机构 [树莓派基金会](http://www.raspberrypi.org/) 推荐用于树莓派的首选系统,其基于 `Debian`。 ** `Raspbian` 是树莓派的开发与维护机构 [树莓派基金会](http://www.raspberrypi.org/) 推荐用于树莓派的首选系统,其基于 `Debian`。
### 使用 APT 安装 ## 使用 APT 安装
由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改因此我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书 由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改因此我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书
@ -58,7 +58,7 @@ $ sudo add-apt-repository \
>以上命令会添加稳定版本的 Docker CE APT 如果需要测试或每日构建版本的 Docker CE 请将 stable 改为 test 或者 nightly >以上命令会添加稳定版本的 Docker CE APT 如果需要测试或每日构建版本的 Docker CE 请将 stable 改为 test 或者 nightly
#### 安装 Docker CE ### 安装 Docker CE
更新 apt 软件包缓存并安装 `docker-ce` 更新 apt 软件包缓存并安装 `docker-ce`
@ -68,7 +68,7 @@ $ sudo apt-get update
$ sudo apt-get install docker-ce $ sudo apt-get install docker-ce
``` ```
### 使用脚本自动安装 ## 使用脚本自动安装
在测试或开发环境中 Docker 官方为了简化安装流程提供了一套便捷的安装脚本Raspbian 系统上可以使用这套脚本安装另外可以通过 `--mirror` 选项使用国内源进行安装 在测试或开发环境中 Docker 官方为了简化安装流程提供了一套便捷的安装脚本Raspbian 系统上可以使用这套脚本安装另外可以通过 `--mirror` 选项使用国内源进行安装
@ -80,14 +80,14 @@ $ sudo sh get-docker.sh --mirror Aliyun
执行这个命令后脚本就会自动的将一切准备工作做好并且把 Docker CE 的稳定(stable)版本安装在系统中 执行这个命令后脚本就会自动的将一切准备工作做好并且把 Docker CE 的稳定(stable)版本安装在系统中
### 启动 Docker CE ## 启动 Docker CE
```bash ```bash
$ sudo systemctl enable docker $ sudo systemctl enable docker
$ sudo systemctl start docker $ sudo systemctl start docker
``` ```
### 建立 docker 用户组 ## 建立 docker 用户组
默认情况下`docker` 命令会使用 [Unix socket](https://en.wikipedia.org/wiki/Unix_domain_socket) 与 Docker 引擎通讯。而只有 `root` 用户和 `docker` 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑一般 Linux 系统上不会直接使用 `root` 用户。因此,更好地做法是将需要使用 `docker` 的用户加入 `docker` 用户组。 默认情况下`docker` 命令会使用 [Unix socket](https://en.wikipedia.org/wiki/Unix_domain_socket) 与 Docker 引擎通讯。而只有 `root` 用户和 `docker` 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑一般 Linux 系统上不会直接使用 `root` 用户。因此,更好地做法是将需要使用 `docker` 的用户加入 `docker` 用户组。
@ -105,7 +105,7 @@ $ sudo usermod -aG docker $USER
退出当前终端并重新登录进行如下测试 退出当前终端并重新登录进行如下测试
### 测试 Docker 是否安装正确 ## 测试 Docker 是否安装正确
```bash ```bash
$ docker run arm32v7/hello-world $ docker run arm32v7/hello-world
@ -142,6 +142,6 @@ For more examples and ideas, visit:
*注意* ARM 平台不能使用 `x86` 镜像查看 Raspbian 可使用镜像请访问 [arm32v7](https://hub.docker.com/u/arm32v7/)。 *注意* ARM 平台不能使用 `x86` 镜像查看 Raspbian 可使用镜像请访问 [arm32v7](https://hub.docker.com/u/arm32v7/)。
### 镜像加速 ## 镜像加速
如果在使用过程中发现拉取 Docker 镜像十分缓慢可以配置 Docker [国内镜像加速](mirror.md) 如果在使用过程中发现拉取 Docker 镜像十分缓慢可以配置 Docker [国内镜像加速](mirror.md)

View File

@ -1,10 +1,10 @@
## Ubuntu 安装 Docker CE # Ubuntu 安装 Docker CE
>警告切勿在没有配置 Docker APT 源的情况下直接使用 apt 命令安装 Docker. >警告切勿在没有配置 Docker APT 源的情况下直接使用 apt 命令安装 Docker.
### 准备工作 ## 准备工作
#### 系统要求 ### 系统要求
Docker CE 支持以下版本的 [Ubuntu](https://www.ubuntu.com/server) 操作系统: Docker CE 支持以下版本的 [Ubuntu](https://www.ubuntu.com/server) 操作系统:
@ -15,7 +15,7 @@ Docker CE 支持以下版本的 [Ubuntu](https://www.ubuntu.com/server) 操作
Docker CE 可以安装在 64 位的 x86 平台或 ARM 平台上Ubuntu 发行版中LTSLong-Term-Support长期支持版本会获得 5 年的升级维护支持这样的版本会更稳定因此在生产环境中推荐使用 LTS 版本 Docker CE 可以安装在 64 位的 x86 平台或 ARM 平台上Ubuntu 发行版中LTSLong-Term-Support长期支持版本会获得 5 年的升级维护支持这样的版本会更稳定因此在生产环境中推荐使用 LTS 版本
#### 卸载旧版本 ### 卸载旧版本
旧版本的 Docker 称为 `docker` 或者 `docker-engine`使用以下命令卸载旧版本 旧版本的 Docker 称为 `docker` 或者 `docker-engine`使用以下命令卸载旧版本
@ -25,7 +25,7 @@ $ sudo apt-get remove docker \
docker.io docker.io
``` ```
### 使用 APT 安装 ## 使用 APT 安装
由于 `apt` 源使用 HTTPS 以确保软件下载过程中不被篡改因此我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书 由于 `apt` 源使用 HTTPS 以确保软件下载过程中不被篡改因此我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书
@ -69,7 +69,7 @@ $ sudo add-apt-repository \
>以上命令会添加稳定版本的 Docker CE APT 镜像源如果需要测试或每日构建版本的 Docker CE 请将 stable 改为 test 或者 nightly >以上命令会添加稳定版本的 Docker CE APT 镜像源如果需要测试或每日构建版本的 Docker CE 请将 stable 改为 test 或者 nightly
#### 安装 Docker CE ### 安装 Docker CE
更新 apt 软件包缓存并安装 `docker-ce` 更新 apt 软件包缓存并安装 `docker-ce`
@ -79,7 +79,7 @@ $ sudo apt-get update
$ sudo apt-get install docker-ce $ sudo apt-get install docker-ce
``` ```
### 使用脚本自动安装 ## 使用脚本自动安装
在测试或开发环境中 Docker 官方为了简化安装流程提供了一套便捷的安装脚本Ubuntu 系统上可以使用这套脚本安装另外可以通过 `--mirror` 选项使用国内源进行安装 在测试或开发环境中 Docker 官方为了简化安装流程提供了一套便捷的安装脚本Ubuntu 系统上可以使用这套脚本安装另外可以通过 `--mirror` 选项使用国内源进行安装
@ -91,14 +91,14 @@ $ sudo sh get-docker.sh --mirror Aliyun
执行这个命令后脚本就会自动的将一切准备工作做好并且把 Docker CE 的稳定(stable)版本安装在系统中 执行这个命令后脚本就会自动的将一切准备工作做好并且把 Docker CE 的稳定(stable)版本安装在系统中
### 启动 Docker CE ## 启动 Docker CE
```bash ```bash
$ sudo systemctl enable docker $ sudo systemctl enable docker
$ sudo systemctl start docker $ sudo systemctl start docker
``` ```
### 建立 docker 用户组 ## 建立 docker 用户组
默认情况下`docker` 命令会使用 [Unix socket](https://en.wikipedia.org/wiki/Unix_domain_socket) 与 Docker 引擎通讯。而只有 `root` 用户和 `docker` 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑一般 Linux 系统上不会直接使用 `root` 用户。因此,更好地做法是将需要使用 `docker` 的用户加入 `docker` 用户组。 默认情况下`docker` 命令会使用 [Unix socket](https://en.wikipedia.org/wiki/Unix_domain_socket) 与 Docker 引擎通讯。而只有 `root` 用户和 `docker` 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑一般 Linux 系统上不会直接使用 `root` 用户。因此,更好地做法是将需要使用 `docker` 的用户加入 `docker` 用户组。
@ -116,7 +116,7 @@ $ sudo usermod -aG docker $USER
退出当前终端并重新登录进行如下测试 退出当前终端并重新登录进行如下测试
### 测试 Docker 是否安装正确 ## 测试 Docker 是否安装正确
```bash ```bash
$ docker run hello-world $ docker run hello-world
@ -151,10 +151,10 @@ For more examples and ideas, visit:
若能正常输出以上信息则说明安装成功 若能正常输出以上信息则说明安装成功
### 镜像加速 ## 镜像加速
如果在使用过程中发现拉取 Docker 镜像十分缓慢可以配置 Docker [国内镜像加速](mirror.md) 如果在使用过程中发现拉取 Docker 镜像十分缓慢可以配置 Docker [国内镜像加速](mirror.md)
### 参考文档 ## 参考文档
* [Docker 官方 Ubuntu 安装文档](https://docs.docker.com/install/linux/docker-ce/ubuntu/) * [Docker 官方 Ubuntu 安装文档](https://docs.docker.com/install/linux/docker-ce/ubuntu/)

View File

@ -1,16 +1,16 @@
## Windows 10 安装 Docker Desktop CE # Windows 10 安装 Docker Desktop CE
### 系统要求 ## 系统要求
[Docker Desktop for Windows](https://docs.docker.com/docker-for-windows/install/) 支持 64 位版本的 Windows 10 Pro且必须开启 Hyper-V。 [Docker Desktop for Windows](https://docs.docker.com/docker-for-windows/install/) 支持 64 位版本的 Windows 10 Pro且必须开启 Hyper-V。
### 安装 ## 安装
点击以下链接下载 [Stable](https://download.docker.com/win/stable/Docker%20Desktop%20Installer.exe) 或 [Edge](https://download.docker.com/win/edge/Docker%20Desktop%20Installer.exe) 版本的 Docker Desktop for Windows。 点击以下链接下载 [Stable](https://download.docker.com/win/stable/Docker%20Desktop%20Installer.exe) 或 [Edge](https://download.docker.com/win/edge/Docker%20Desktop%20Installer.exe) 版本的 Docker Desktop for Windows。
下载好之后双击 `Docker Desktop Installer.exe` 开始安装 下载好之后双击 `Docker Desktop Installer.exe` 开始安装
### 运行 ## 运行
Windows 搜索栏输入 Docker 点击 Docker for Windows 开始运行 Windows 搜索栏输入 Docker 点击 Docker for Windows 开始运行
@ -24,10 +24,10 @@ Docker CE 启动之后会在 Windows 任务栏出现鲸鱼图标。
![](_images/install-win-success-popup-cloud.png) ![](_images/install-win-success-popup-cloud.png)
### 镜像加速 ## 镜像加速
如果在使用过程中发现拉取 Docker 镜像十分缓慢可以配置 Docker [国内镜像加速](mirror.md) 如果在使用过程中发现拉取 Docker 镜像十分缓慢可以配置 Docker [国内镜像加速](mirror.md)
### 参考链接 ## 参考链接
* [官方文档](https://docs.docker.com/docker-for-windows/install/) * [官方文档](https://docs.docker.com/docker-for-windows/install/)

View File

@ -1,18 +1,18 @@
## Docker Hub # Docker Hub
目前 Docker 官方维护了一个公共仓库 [Docker Hub](https://hub.docker.com/),其中已经包括了数量超过 [2,650,000](https://hub.docker.com/search/?type=image) 的镜像。大部分需求都可以通过在 Docker Hub 中直接下载镜像来实现。 目前 Docker 官方维护了一个公共仓库 [Docker Hub](https://hub.docker.com/),其中已经包括了数量超过 [2,650,000](https://hub.docker.com/search/?type=image) 的镜像。大部分需求都可以通过在 Docker Hub 中直接下载镜像来实现。
### 注册 ## 注册
你可以在 https://hub.docker.com 免费注册一个 Docker 账号。 你可以在 https://hub.docker.com 免费注册一个 Docker 账号。
### 登录 ## 登录
可以通过执行 `docker login` 命令交互式的输入用户名及密码来完成在命令行界面登录 Docker Hub 可以通过执行 `docker login` 命令交互式的输入用户名及密码来完成在命令行界面登录 Docker Hub
你可以通过 `docker logout` 退出登录 你可以通过 `docker logout` 退出登录
### 拉取镜像 ## 拉取镜像
你可以通过 `docker search` 命令来查找官方仓库中的镜像并利用 `docker pull` 命令来将它下载到本地 你可以通过 `docker search` 命令来查找官方仓库中的镜像并利用 `docker pull` 命令来将它下载到本地
@ -49,7 +49,7 @@ Pulling repository centos
7064731afe90: Download complete 7064731afe90: Download complete
``` ```
### 推送镜像 ## 推送镜像
用户也可以在登录后通过 `docker push` 命令来将自己的镜像推送到 Docker Hub 用户也可以在登录后通过 `docker push` 命令来将自己的镜像推送到 Docker Hub
@ -72,7 +72,7 @@ NAME DESCRIPTION STARS
username/ubuntu username/ubuntu
``` ```
### 自动构建 ## 自动构建
自动构建Automated Builds功能对于需要经常升级镜像内程序来说十分方便 自动构建Automated Builds功能对于需要经常升级镜像内程序来说十分方便

View File

@ -1,8 +1,8 @@
## Nexus3.x 的私有仓库 # Nexus3.x 的私有仓库
使用 Docker 官方的 Registry 创建的仓库面临一些维护问题比如某些镜像删除以后空间默认是不会回收的需要一些命令去回收空间然后重启 Registry 程序在企业中把内部的一些工具包放入 Nexus 中是比较常见的做法最新版本 `Nexus3.x` 全面支持 Docker 的私有镜像所以使用 [`Nexus3.x`](https://www.sonatype.com/download-oss-sonatype/) 一个软件来管理 `Docker` , `Maven` , `Yum` , `PyPI` 等是一个明智的选择。 使用 Docker 官方的 Registry 创建的仓库面临一些维护问题比如某些镜像删除以后空间默认是不会回收的需要一些命令去回收空间然后重启 Registry 程序在企业中把内部的一些工具包放入 Nexus 中是比较常见的做法最新版本 `Nexus3.x` 全面支持 Docker 的私有镜像所以使用 [`Nexus3.x`](https://www.sonatype.com/download-oss-sonatype/) 一个软件来管理 `Docker` , `Maven` , `Yum` , `PyPI` 等是一个明智的选择。
### 启动 Nexus 容器 ## 启动 Nexus 容器
```bash ```bash
$ docker run -d --name nexus3 --restart=always \ $ docker run -d --name nexus3 --restart=always \
@ -15,7 +15,7 @@ $ docker run -d --name nexus3 --restart=always \
第一次启动 Nexus 的默认帐号是 `admin` 密码是 `admin123` 登录以后点击页面上方的齿轮按钮进行设置 第一次启动 Nexus 的默认帐号是 `admin` 密码是 `admin123` 登录以后点击页面上方的齿轮按钮进行设置
### 创建仓库 ## 创建仓库
创建一个私有仓库的方法 `Repository->Repositories` 点击右边菜单 `Create repository` 选择 `docker (hosted)` 创建一个私有仓库的方法 `Repository->Repositories` 点击右边菜单 `Create repository` 选择 `docker (hosted)`
@ -26,7 +26,7 @@ $ docker run -d --name nexus3 --restart=always \
其它的仓库创建方法请各位自己摸索还可以创建一个 docker (proxy) 类型的仓库链接到 DockerHub 再创建一个 docker (group) 类型的仓库把刚才的 hosted proxy 添加在一起主机在访问的时候默认下载私有仓库中的镜像如果没有将链接到 DockerHub 中下载并缓存到 Nexus 其它的仓库创建方法请各位自己摸索还可以创建一个 docker (proxy) 类型的仓库链接到 DockerHub 再创建一个 docker (group) 类型的仓库把刚才的 hosted proxy 添加在一起主机在访问的时候默认下载私有仓库中的镜像如果没有将链接到 DockerHub 中下载并缓存到 Nexus
### 添加访问权限 ## 添加访问权限
菜单 `Security->Realms` Docker Bearer Token Realm 移到右边的框中保存 菜单 `Security->Realms` Docker Bearer Token Realm 移到右边的框中保存
@ -34,7 +34,7 @@ $ docker run -d --name nexus3 --restart=always \
添加用户菜单 `Security->Users`->`Create local user` `Roles` 选项中选中刚才创建的规则移动到右边的窗口保存 添加用户菜单 `Security->Users`->`Create local user` `Roles` 选项中选中刚才创建的规则移动到右边的窗口保存
### NGINX 加密代理 ## NGINX 加密代理
证书的生成请参见 [`私有仓库高级配置`](registry_auth.md) 里面证书生成一节 证书的生成请参见 [`私有仓库高级配置`](registry_auth.md) 里面证书生成一节
@ -89,7 +89,7 @@ server {
} }
``` ```
### Docker 主机访问镜像仓库 ## Docker 主机访问镜像仓库
如果不启用 SSL 加密可以通过前面章节的方法添加信任地址到 Docker 的配置文件中然后重启 Docker 如果不启用 SSL 加密可以通过前面章节的方法添加信任地址到 Docker 的配置文件中然后重启 Docker

View File

@ -1,4 +1,4 @@
## 私有仓库 # 私有仓库
有时候使用 Docker Hub 这样的公共仓库可能不方便用户可以创建一个本地仓库供私人使用 有时候使用 Docker Hub 这样的公共仓库可能不方便用户可以创建一个本地仓库供私人使用
@ -6,9 +6,9 @@
[`docker-registry`](https://docs.docker.com/registry/) 是官方提供的工具,可以用于构建私有的镜像仓库。本文内容基于 [`docker-registry`](https://github.com/docker/distribution) v2.x 版本。 [`docker-registry`](https://docs.docker.com/registry/) 是官方提供的工具,可以用于构建私有的镜像仓库。本文内容基于 [`docker-registry`](https://github.com/docker/distribution) v2.x 版本。
### 安装运行 docker-registry ## 安装运行 docker-registry
#### 容器运行 ### 容器运行
你可以通过获取官方 `registry` 镜像来运行 你可以通过获取官方 `registry` 镜像来运行
@ -25,7 +25,7 @@ $ docker run -d \
registry registry
``` ```
### 在私有仓库上传搜索下载镜像 ## 在私有仓库上传搜索下载镜像
创建好私有仓库之后就可以使用 `docker tag` 来标记一个镜像然后推送它到仓库例如私有仓库地址为 `127.0.0.1:5000` 创建好私有仓库之后就可以使用 `docker tag` 来标记一个镜像然后推送它到仓库例如私有仓库地址为 `127.0.0.1:5000`
@ -91,13 +91,13 @@ REPOSITORY TAG IMAGE ID CREAT
127.0.0.1:5000/ubuntu:latest latest ba5877dc9bec 6 weeks ago 192.7 MB 127.0.0.1:5000/ubuntu:latest latest ba5877dc9bec 6 weeks ago 192.7 MB
``` ```
### 注意事项 ## 注意事项
如果你不想使用 `127.0.0.1:5000` 作为仓库地址比如想让本网段的其他主机也能把镜像推送到私有仓库你就得把例如 `192.168.199.100:5000` 这样的内网地址作为私有仓库地址这时你会发现无法成功推送镜像 如果你不想使用 `127.0.0.1:5000` 作为仓库地址比如想让本网段的其他主机也能把镜像推送到私有仓库你就得把例如 `192.168.199.100:5000` 这样的内网地址作为私有仓库地址这时你会发现无法成功推送镜像
这是因为 Docker 默认不允许非 `HTTPS` 方式推送镜像我们可以通过 Docker 的配置选项来取消这个限制或者查看下一节配置能够通过 `HTTPS` 访问的私有仓库 这是因为 Docker 默认不允许非 `HTTPS` 方式推送镜像我们可以通过 Docker 的配置选项来取消这个限制或者查看下一节配置能够通过 `HTTPS` 访问的私有仓库
#### Ubuntu 16.04+, Debian 8+, centos 7 ### Ubuntu 16.04+, Debian 8+, centos 7
对于使用 `systemd` 的系统请在 `/etc/docker/daemon.json` 中写入如下内容如果文件不存在请新建该文件 对于使用 `systemd` 的系统请在 `/etc/docker/daemon.json` 中写入如下内容如果文件不存在请新建该文件
@ -114,6 +114,6 @@ REPOSITORY TAG IMAGE ID CREAT
>注意该文件必须符合 `json` 规范否则 Docker 将不能启动 >注意该文件必须符合 `json` 规范否则 Docker 将不能启动
### 其他 ## 其他
对于 Docker Desktop for Windows Docker Desktop for Mac 在设置中的 `Docker Engine` 中进行编辑 增加和上边一样的字符串即可 对于 Docker Desktop for Windows Docker Desktop for Mac 在设置中的 `Docker Engine` 中进行编辑 增加和上边一样的字符串即可

View File

@ -1,10 +1,10 @@
## 私有仓库高级配置 # 私有仓库高级配置
上一节我们搭建了一个具有基础功能的私有仓库本小节我们来使用 `Docker Compose` 搭建一个拥有权限认证TLS 的私有仓库 上一节我们搭建了一个具有基础功能的私有仓库本小节我们来使用 `Docker Compose` 搭建一个拥有权限认证TLS 的私有仓库
新建一个文件夹以下步骤均在该文件夹中进行 新建一个文件夹以下步骤均在该文件夹中进行
### 准备站点证书 ## 准备站点证书
如果你拥有一个域名国内各大云服务商均提供免费的站点证书你也可以使用 `openssl` 自行签发证书 如果你拥有一个域名国内各大云服务商均提供免费的站点证书你也可以使用 `openssl` 自行签发证书
@ -82,7 +82,7 @@ $ openssl x509 -req -days 750 -in "site.csr" -sha256 \
新建 `ssl` 文件夹并将 `docker.domain.com.key` `docker.domain.com.crt` `root-ca.crt` 这三个文件移入删除其他文件 新建 `ssl` 文件夹并将 `docker.domain.com.key` `docker.domain.com.crt` `root-ca.crt` 这三个文件移入删除其他文件
### 配置私有仓库 ## 配置私有仓库
私有仓库默认的配置文件位于 `/etc/docker/registry/config.yml`我们先在本地编辑 `config.yml`之后挂载到容器中 私有仓库默认的配置文件位于 `/etc/docker/registry/config.yml`我们先在本地编辑 `config.yml`之后挂载到容器中
@ -124,7 +124,7 @@ health:
threshold: 3 threshold: 3
``` ```
### 生成 http 认证文件 ## 生成 http 认证文件
```bash ```bash
$ mkdir auth $ mkdir auth
@ -137,7 +137,7 @@ $ docker run --rm \
> 将上面的 `username` `password` 替换为你自己的用户名和密码 > 将上面的 `username` `password` 替换为你自己的用户名和密码
### 编辑 `docker-compose.yml` ## 编辑 `docker-compose.yml`
```yaml ```yaml
version: '3' version: '3'
@ -155,7 +155,7 @@ volumes:
registry-data: registry-data:
``` ```
### 修改 hosts ## 修改 hosts
编辑 `/etc/hosts` 编辑 `/etc/hosts`
@ -163,7 +163,7 @@ volumes:
127.0.0.1 docker.domain.com 127.0.0.1 docker.domain.com
``` ```
### 启动 ## 启动
```bash ```bash
$ docker-compose up -d $ docker-compose up -d
@ -171,7 +171,7 @@ $ docker-compose up -d
这样我们就搭建好了一个具有权限认证TLS 的私有仓库接下来我们测试其功能是否正常 这样我们就搭建好了一个具有权限认证TLS 的私有仓库接下来我们测试其功能是否正常
### 测试私有仓库功能 ## 测试私有仓库功能
由于自行签发的 CA 根证书不被系统信任所以我们需要将 CA 根证书 `ssl/root-ca.crt` 移入 `/etc/docker/certs.d/docker.domain.com` 文件夹中 由于自行签发的 CA 根证书不被系统信任所以我们需要将 CA 根证书 `ssl/root-ca.crt` 移入 `/etc/docker/certs.d/docker.domain.com` 文件夹中
@ -213,6 +213,6 @@ no basic auth credentials
发现会提示没有登录不能将镜像推送到私有仓库中 发现会提示没有登录不能将镜像推送到私有仓库中
### 注意事项 ## 注意事项
如果你本机占用了 `443` 端口你可以配置 [Nginx 代理](https://docs.docker.com/registry/recipes/nginx/),这里不再赘述。 如果你本机占用了 `443` 端口你可以配置 [Nginx 代理](https://docs.docker.com/registry/recipes/nginx/),这里不再赘述。

View File

@ -1,4 +1,4 @@
## 基本架构 # 基本架构
Docker 采用了 `C/S` 架构包括客户端和服务端Docker 守护进程 `Daemon`作为服务端接受来自客户端的请求并处理这些请求创建运行分发容器 Docker 采用了 `C/S` 架构包括客户端和服务端Docker 守护进程 `Daemon`作为服务端接受来自客户端的请求并处理这些请求创建运行分发容器

View File

@ -1,4 +1,4 @@
## 控制组 # 控制组
控制组[cgroups](https://en.wikipedia.org/wiki/Cgroups))是 Linux 内核的一个特性,主要用来对共享资源进行隔离、限制、审计等。只有能控制分配到容器的资源,才能避免当多个容器同时运行时的对系统资源的竞争。 控制组[cgroups](https://en.wikipedia.org/wiki/Cgroups))是 Linux 内核的一个特性,主要用来对共享资源进行隔离、限制、审计等。只有能控制分配到容器的资源,才能避免当多个容器同时运行时的对系统资源的竞争。

View File

@ -1,4 +1,4 @@
## 容器格式 # 容器格式
最初Docker 采用了 `LXC` 中的容器格式 0.7 版本以后开始去除 LXC转而使用自行开发的 [libcontainer](https://github.com/docker/libcontainer),从 1.11 开始,则进一步演进为使用 [runC](https://github.com/opencontainers/runc) 和 [containerd](https://containerd.tools/)。 最初Docker 采用了 `LXC` 中的容器格式 0.7 版本以后开始去除 LXC转而使用自行开发的 [libcontainer](https://github.com/docker/libcontainer),从 1.11 开始,则进一步演进为使用 [runC](https://github.com/opencontainers/runc) 和 [containerd](https://containerd.tools/)。

View File

@ -1,22 +1,22 @@
## 命名空间 # 命名空间
命名空间是 Linux 内核一个强大的特性每个容器都有自己单独的命名空间运行在其中的应用都像是在独立的操作系统中运行一样命名空间保证了容器之间彼此互不影响 命名空间是 Linux 内核一个强大的特性每个容器都有自己单独的命名空间运行在其中的应用都像是在独立的操作系统中运行一样命名空间保证了容器之间彼此互不影响
### pid 命名空间 ## pid 命名空间
不同用户的进程就是通过 pid 命名空间隔离开的且不同命名空间中可以有相同 pid所有的 LXC 进程在 Docker 中的父进程为 Docker 进程每个 LXC 进程具有不同的命名空间同时由于允许嵌套因此可以很方便的实现嵌套的 Docker 容器 不同用户的进程就是通过 pid 命名空间隔离开的且不同命名空间中可以有相同 pid所有的 LXC 进程在 Docker 中的父进程为 Docker 进程每个 LXC 进程具有不同的命名空间同时由于允许嵌套因此可以很方便的实现嵌套的 Docker 容器
### net 命名空间 ## net 命名空间
有了 pid 命名空间每个命名空间中的 pid 能够相互隔离但是网络端口还是共享 host 的端口网络隔离是通过 net 命名空间实现的 每个 net 命名空间有独立的 网络设备IP 地址路由表/proc/net 目录这样每个容器的网络就能隔离开来Docker 默认采用 veth 的方式将容器中的虚拟网卡同 host 上的一 个Docker 网桥 docker0 连接在一起 有了 pid 命名空间每个命名空间中的 pid 能够相互隔离但是网络端口还是共享 host 的端口网络隔离是通过 net 命名空间实现的 每个 net 命名空间有独立的 网络设备IP 地址路由表/proc/net 目录这样每个容器的网络就能隔离开来Docker 默认采用 veth 的方式将容器中的虚拟网卡同 host 上的一 个Docker 网桥 docker0 连接在一起
### ipc 命名空间 ## ipc 命名空间
容器中进程交互还是采用了 Linux 常见的进程间交互方法(interprocess communication - IPC) 包括信号量消息队列和共享内存等然而同 VM 不同的是容器的进程间交互实际上还是 host 上具有相同 pid 命名空间中的进程间交互因此需要在 IPC 资源申请时加入命名空间信息每个 IPC 资源有一个唯一的 32 id 容器中进程交互还是采用了 Linux 常见的进程间交互方法(interprocess communication - IPC) 包括信号量消息队列和共享内存等然而同 VM 不同的是容器的进程间交互实际上还是 host 上具有相同 pid 命名空间中的进程间交互因此需要在 IPC 资源申请时加入命名空间信息每个 IPC 资源有一个唯一的 32 id
### mnt 命名空间 ## mnt 命名空间
类似 chroot将一个进程放到一个特定的目录执行mnt 命名空间允许不同命名空间的进程看到的文件结构不同这样每个命名空间 中的进程所看到的文件目录就被隔离开了 chroot 不同每个命名空间中的容器在 /proc/mounts 的信息只包含所在命名空间的 mount point 类似 chroot将一个进程放到一个特定的目录执行mnt 命名空间允许不同命名空间的进程看到的文件结构不同这样每个命名空间 中的进程所看到的文件目录就被隔离开了 chroot 不同每个命名空间中的容器在 /proc/mounts 的信息只包含所在命名空间的 mount point
### uts 命名空间 ## uts 命名空间
UTS("UNIX Time-sharing System") 命名空间允许每个容器拥有独立的 hostname domain name 使其在网络上可以被视作一个独立的节点而非 主机上的一个进程 UTS("UNIX Time-sharing System") 命名空间允许每个容器拥有独立的 hostname domain name 使其在网络上可以被视作一个独立的节点而非 主机上的一个进程
### user 命名空间 ## user 命名空间
每个容器可以有不同的用户和组 id 也就是说可以在容器内用容器内部的用户执行程序而非主机上的用户 每个容器可以有不同的用户和组 id 也就是说可以在容器内用容器内部的用户执行程序而非主机上的用户
*更多关于 Linux 上命名空间的信息请阅读 [这篇文章](https://blog.scottlowe.org/2013/09/04/introducing-linux-network-namespaces/)。 *更多关于 Linux 上命名空间的信息请阅读 [这篇文章](https://blog.scottlowe.org/2013/09/04/introducing-linux-network-namespaces/)。

View File

@ -1,8 +1,8 @@
## Docker 网络实现 # Docker 网络实现
Docker 的网络实现其实就是利用了 Linux 上的网络命名空间和虚拟网络设备特别是 veth pair建议先熟悉了解这两部分的基本概念再阅读本章 Docker 的网络实现其实就是利用了 Linux 上的网络命名空间和虚拟网络设备特别是 veth pair建议先熟悉了解这两部分的基本概念再阅读本章
### 基本原理 ## 基本原理
首先要实现网络通信机器需要至少一个网络接口物理接口或虚拟接口来收发数据包此外如果不同子网之间要进行通信需要路由机制 首先要实现网络通信机器需要至少一个网络接口物理接口或虚拟接口来收发数据包此外如果不同子网之间要进行通信需要路由机制
Docker 中的网络接口默认都是虚拟的接口虚拟接口的优势之一是转发效率较高 Docker 中的网络接口默认都是虚拟的接口虚拟接口的优势之一是转发效率较高
@ -10,7 +10,7 @@ Linux 通过在内核中进行数据复制来实现虚拟接口之间的数据
Docker 容器网络就利用了这项技术它在本地主机和容器内分别创建一个虚拟接口并让它们彼此连通这样的一对接口叫做 `veth pair` Docker 容器网络就利用了这项技术它在本地主机和容器内分别创建一个虚拟接口并让它们彼此连通这样的一对接口叫做 `veth pair`
### 创建网络参数 ## 创建网络参数
Docker 创建一个容器的时候会执行如下操作 Docker 创建一个容器的时候会执行如下操作
* 创建一对虚拟接口分别放到本地主机和新容器中 * 创建一对虚拟接口分别放到本地主机和新容器中
* 本地主机一端桥接到默认的 docker0 或指定网桥上并具有一个唯一的名字 veth65f9 * 本地主机一端桥接到默认的 docker0 或指定网桥上并具有一个唯一的名字 veth65f9
@ -25,7 +25,7 @@ Docker 创建一个容器的时候,会执行如下操作:
* `--net=container:NAME_or_ID` Docker 将新建容器的进程放到一个已存在容器的网络栈中新容器进程有自己的文件系统进程列表和资源限制但会和已存在的容器共享 IP 地址和端口等网络资源两者进程可以直接通过 `lo` 环回接口通信 * `--net=container:NAME_or_ID` Docker 将新建容器的进程放到一个已存在容器的网络栈中新容器进程有自己的文件系统进程列表和资源限制但会和已存在的容器共享 IP 地址和端口等网络资源两者进程可以直接通过 `lo` 环回接口通信
* `--net=none` Docker 将新容器放到隔离的网络栈中但是不进行网络配置之后用户可以自己进行配置 * `--net=none` Docker 将新容器放到隔离的网络栈中但是不进行网络配置之后用户可以自己进行配置
### 网络配置细节 ## 网络配置细节
用户使用 `--net=none` 可以自行配置网络让容器达到跟平常一样具有访问网络的权限通过这个过程可以了解 Docker 配置网络的细节 用户使用 `--net=none` 可以自行配置网络让容器达到跟平常一样具有访问网络的权限通过这个过程可以了解 Docker 配置网络的细节
首先启动一个 `/bin/bash` 容器指定 `--net=none` 参数 首先启动一个 `/bin/bash` 容器指定 `--net=none` 参数

View File

@ -1,4 +1,4 @@
## 联合文件系统 # 联合文件系统
联合文件系统[UnionFS](https://en.wikipedia.org/wiki/UnionFS))是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem)。 联合文件系统[UnionFS](https://en.wikipedia.org/wiki/UnionFS))是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem)。