mirror of
https://github.com/yeasy/docker_practice.git
synced 2024-12-26 06:56:19 +00:00
commit
5603887437
@ -21,6 +21,7 @@
|
|||||||
* [使用镜像](image/README.md)
|
* [使用镜像](image/README.md)
|
||||||
* [获取镜像](image/pull.md)
|
* [获取镜像](image/pull.md)
|
||||||
* [列出镜像](image/list.md)
|
* [列出镜像](image/list.md)
|
||||||
|
* [删除本地镜像](image/rm.md)
|
||||||
* [利用 commit 理解镜像构成](image/commit.md)
|
* [利用 commit 理解镜像构成](image/commit.md)
|
||||||
* [使用 Dockerfile 定制镜像](image/build.md)
|
* [使用 Dockerfile 定制镜像](image/build.md)
|
||||||
* [Dockerfile 指令详解](image/dockerfile/README.md)
|
* [Dockerfile 指令详解](image/dockerfile/README.md)
|
||||||
@ -39,7 +40,6 @@
|
|||||||
* [参考文档](image/dockerfile/references.md)
|
* [参考文档](image/dockerfile/references.md)
|
||||||
* [Dockerfile 多阶段构建](image/multistage-builds.md)
|
* [Dockerfile 多阶段构建](image/multistage-builds.md)
|
||||||
* [其它制作镜像的方式](image/other.md)
|
* [其它制作镜像的方式](image/other.md)
|
||||||
* [删除本地镜像](image/rm.md)
|
|
||||||
* [实现原理](image/internal.md)
|
* [实现原理](image/internal.md)
|
||||||
* [操作容器](container/README.md)
|
* [操作容器](container/README.md)
|
||||||
* [启动](container/run.md)
|
* [启动](container/run.md)
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
# 高级网络配置
|
# 高级网络配置
|
||||||
|
|
||||||
|
>注意:本章属于 `Docker` 高级配置,如果您是初学者,您可以暂时跳过本章节,直接学习 [Docker Compose](../compose) 一节。
|
||||||
|
|
||||||
本章将介绍 Docker 的一些高级网络配置和选项。
|
本章将介绍 Docker 的一些高级网络配置和选项。
|
||||||
|
|
||||||
当 Docker 启动时,会自动在主机上创建一个 `docker0` 虚拟网桥,实际上是 Linux 的一个 bridge,可以理解为一个软件交换机。它会在挂载到它的网口之间进行转发。
|
当 Docker 启动时,会自动在主机上创建一个 `docker0` 虚拟网桥,实际上是 Linux 的一个 bridge,可以理解为一个软件交换机。它会在挂载到它的网口之间进行转发。
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
* `数据卷` 默认会一直存在,即使容器被删除
|
* `数据卷` 默认会一直存在,即使容器被删除
|
||||||
|
|
||||||
*注意*:`数据卷` 的使用,类似于 Linux 下对目录或文件进行 mount,镜像中的被指定为挂载点的目录中的文件会隐藏掉,能显示看的是挂载的 `数据卷`。
|
>注意:`数据卷` 的使用,类似于 Linux 下对目录或文件进行 mount,镜像中的被指定为挂载点的目录中的文件会隐藏掉,能显示看的是挂载的 `数据卷`。
|
||||||
|
|
||||||
### 选择 -v 还是 -–mount 参数
|
### 选择 -v 还是 -–mount 参数
|
||||||
|
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
|
||||||
|
>注意:如果您是初学者,您可以暂时跳过后面的内容,直接学习 [容器](../container) 一节。
|
||||||
|
|
||||||
## 利用 commit 理解镜像构成
|
## 利用 commit 理解镜像构成
|
||||||
|
|
||||||
注意: `docker commit` 命令除了学习之外,还有一些特殊的应用场合,比如被入侵后保存现场等。但是,不要使用 `docker commit` 定制镜像,定制镜像应该使用 `Dockerfile` 来完成。如果你想要定制镜像请查看下一小节。
|
注意: `docker commit` 命令除了学习之外,还有一些特殊的应用场合,比如被入侵后保存现场等。但是,不要使用 `docker commit` 定制镜像,定制镜像应该使用 `Dockerfile` 来完成。如果你想要定制镜像请查看下一小节。
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
## 其它生成镜像的方法
|
## 其它制作镜像的方式
|
||||||
|
|
||||||
除了标准的使用 `Dockerfile` 生成镜像的方法外,由于各种特殊需求和历史原因,还提供了一些其它方法用以生成镜像。
|
除了标准的使用 `Dockerfile` 生成镜像的方法外,由于各种特殊需求和历史原因,还提供了一些其它方法用以生成镜像。
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
## 获取镜像
|
## 获取镜像
|
||||||
|
|
||||||
之前提到过,[Docker Hub](https://hub.docker.com/explore/) 上有大量的高质量的镜像可以用,这里我们就说一下怎么获取这些镜像并运行。
|
之前提到过,[Docker Hub](https://hub.docker.com/explore/) 上有大量的高质量的镜像可以用,这里我们就说一下怎么获取这些镜像。
|
||||||
|
|
||||||
从 Docker 镜像仓库获取镜像的命令是 `docker pull`。其命令格式为:
|
从 Docker 镜像仓库获取镜像的命令是 `docker pull`。其命令格式为:
|
||||||
|
|
||||||
@ -37,7 +37,7 @@ Status: Downloaded newer image for ubuntu:16.04
|
|||||||
|
|
||||||
### 运行
|
### 运行
|
||||||
|
|
||||||
有了镜像后,我们就可以以这个镜像为基础启动一个容器来运行。以上面的 `ubuntu:16.04` 为例,如果我们打算启动里面的 `bash` 并且进行交互式操作的话,可以执行下面的命令。
|
有了镜像后,我们就能够以这个镜像为基础启动并运行一个容器。以上面的 `ubuntu:16.04` 为例,如果我们打算启动里面的 `bash` 并且进行交互式操作的话,可以执行下面的命令。
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ docker run -it --rm \
|
$ docker run -it --rm \
|
||||||
@ -56,7 +56,7 @@ SUPPORT_URL="http://help.ubuntu.com/"
|
|||||||
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
|
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
|
||||||
```
|
```
|
||||||
|
|
||||||
`docker run` 就是运行容器的命令,具体格式我们会在后面的章节讲解,我们这里简要的说明一下上面用到的参数。
|
`docker run` 就是运行容器的命令,具体格式我们会在 [容器](../container) 一节进行详细讲解,我们这里简要的说明一下上面用到的参数。
|
||||||
|
|
||||||
* `-it`:这是两个参数,一个是 `-i`:交互式操作,一个是 `-t` 终端。我们这里打算进入 `bash` 执行一些命令并查看返回结果,因此我们需要交互式终端。
|
* `-it`:这是两个参数,一个是 `-i`:交互式操作,一个是 `-t` 终端。我们这里打算进入 `bash` 执行一些命令并查看返回结果,因此我们需要交互式终端。
|
||||||
* `--rm`:这个参数是说容器退出后随之将其删除。默认情况下,为了排障需求,退出的容器并不会立即删除,除非手动 `docker rm`。我们这里只是随便执行个命令,看看结果,不需要排障和保留结果,因此使用 `--rm` 可以避免浪费空间。
|
* `--rm`:这个参数是说容器退出后随之将其删除。默认情况下,为了排障需求,退出的容器并不会立即删除,除非手动 `docker rm`。我们这里只是随便执行个命令,看看结果,不需要排障和保留结果,因此使用 `--rm` 可以避免浪费空间。
|
||||||
|
@ -17,7 +17,7 @@ $ sudo yum remove docker \
|
|||||||
docker-engine
|
docker-engine
|
||||||
```
|
```
|
||||||
|
|
||||||
### 使用 yum 源 安装
|
### 使用 yum 安装
|
||||||
|
|
||||||
执行以下命令安装依赖包:
|
执行以下命令安装依赖包:
|
||||||
|
|
||||||
|
@ -24,9 +24,9 @@ $ sudo apt-get remove docker \
|
|||||||
|
|
||||||
Debian 7 的内核默认为 3.2,为了满足 Docker CE 的需求,应该安装 [`backports`](https://backports.debian.org/Instructions/) 的内核。
|
Debian 7 的内核默认为 3.2,为了满足 Docker CE 的需求,应该安装 [`backports`](https://backports.debian.org/Instructions/) 的内核。
|
||||||
|
|
||||||
### 使用 APT 镜像源 安装
|
### 使用 APT 安装
|
||||||
|
|
||||||
由于官方源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。
|
由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。
|
||||||
|
|
||||||
Debian 8 Jessie 或者 Debian 9 Stretch 使用以下命令:
|
Debian 8 Jessie 或者 Debian 9 Stretch 使用以下命令:
|
||||||
|
|
||||||
|
@ -12,9 +12,9 @@ Docker CE 支持以下版本的 [Raspbian](https://www.raspberrypi.org/downloads
|
|||||||
|
|
||||||
*注:* `Raspbian` 是树莓派基金会为树莓派卡片电脑设计的 Linux 发行版,其基于 Debian。
|
*注:* `Raspbian` 是树莓派基金会为树莓派卡片电脑设计的 Linux 发行版,其基于 Debian。
|
||||||
|
|
||||||
### 使用 APT 镜像源 安装
|
### 使用 APT 安装
|
||||||
|
|
||||||
由于官方源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。
|
由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ sudo apt-get update
|
$ sudo apt-get update
|
||||||
|
@ -38,9 +38,9 @@ $ sudo apt-get install \
|
|||||||
linux-image-extra-virtual
|
linux-image-extra-virtual
|
||||||
```
|
```
|
||||||
|
|
||||||
### 使用 APT 镜像源 安装
|
### 使用 APT 安装
|
||||||
|
|
||||||
由于官方源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。
|
由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ sudo apt-get update
|
$ sudo apt-get update
|
||||||
|
@ -95,7 +95,7 @@ REPOSITORY TAG IMAGE ID CREAT
|
|||||||
|
|
||||||
如果你不想使用 `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 14.04, Debian 7 Wheezy
|
#### Ubuntu 14.04, Debian 7 Wheezy
|
||||||
|
|
||||||
@ -126,6 +126,8 @@ $ sudo service docker restart
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
>注意:该文件必须符合 `json` 规范,否则 Docker 将不能启动。
|
||||||
|
|
||||||
### 其他
|
### 其他
|
||||||
|
|
||||||
对于 Docker for Windows 、 Docker for Mac 在设置中编辑 `daemon.json` 增加和上边一样的字符串即可。
|
对于 Docker for Windows 、 Docker for Mac 在设置中编辑 `daemon.json` 增加和上边一样的字符串即可。
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
在 Docker 17.06 以上版本中,Docker 新增了 `docker config` 子命令来管理集群中的配置信息,以后你无需将配置文件放入镜像或挂载到容器中就可实现对服务的配置。
|
在 Docker 17.06 以上版本中,Docker 新增了 `docker config` 子命令来管理集群中的配置信息,以后你无需将配置文件放入镜像或挂载到容器中就可实现对服务的配置。
|
||||||
|
|
||||||
>注意:`docker config` 仅能在 Swarm 集群中使用。
|
>注意:`config` 仅能在 Swarm 集群中使用。
|
||||||
|
|
||||||
这里我们以在 Swarm 集群中部署 `redis` 服务为例。
|
这里我们以在 Swarm 集群中部署 `redis` 服务为例。
|
||||||
|
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
|
|
||||||
Docker 目前已经提供了 `secrets` 管理功能,用户可以在 Swarm 集群中安全地管理密码、密钥证书等敏感数据,并允许在多个 Docker 容器实例之间共享访问指定的敏感数据。
|
Docker 目前已经提供了 `secrets` 管理功能,用户可以在 Swarm 集群中安全地管理密码、密钥证书等敏感数据,并允许在多个 Docker 容器实例之间共享访问指定的敏感数据。
|
||||||
|
|
||||||
|
>注意: `secret` 也可以在 `Docker Compose` 中使用。
|
||||||
|
|
||||||
我们可以用 `docker secret` 命令来管理敏感信息。接下来我们在上面章节中创建好的 Swarm 集群中介绍该命令的使用。
|
我们可以用 `docker secret` 命令来管理敏感信息。接下来我们在上面章节中创建好的 Swarm 集群中介绍该命令的使用。
|
||||||
|
|
||||||
这里我们以在 Swarm 集群中部署 `mysql` 和 `wordpress` 服务为例。
|
这里我们以在 Swarm 集群中部署 `mysql` 和 `wordpress` 服务为例。
|
||||||
|
Loading…
Reference in New Issue
Block a user