mirror of
https://github.com/yeasy/docker_practice.git
synced 2024-11-24 07:23:38 +00:00
ubuntu 14.04,debian 7 and 8 EOL
This commit is contained in:
parent
4949de94c4
commit
8576e16b61
6
.github/ISSUE_TEMPLATE/Bug_report.md
vendored
6
.github/ISSUE_TEMPLATE/Bug_report.md
vendored
@ -12,11 +12,9 @@ about: Create a report to help us improve
|
||||
|
||||
* [x] Linux
|
||||
* [x] CentOS 7
|
||||
* [x] Ubuntu 14.04
|
||||
* [x] Fedora
|
||||
* [x] Ubuntu 16.04 +
|
||||
* [x] Debian 7
|
||||
* [x] Debian 8 +
|
||||
* [x] CoreOS
|
||||
* [x] Debian 9 +
|
||||
* [x] macOS
|
||||
* [x] Windows 10
|
||||
* [x] Raspberry Pi (ARM)
|
||||
|
6
.github/ISSUE_TEMPLATE/Custom.md
vendored
6
.github/ISSUE_TEMPLATE/Custom.md
vendored
@ -12,11 +12,9 @@ about: Create a issue about Docker
|
||||
|
||||
* [x] Linux
|
||||
* [x] CentOS 7
|
||||
* [x] Ubuntu 14.04
|
||||
* [x] Fedora
|
||||
* [x] Ubuntu 16.04 +
|
||||
* [x] Debian 7
|
||||
* [x] Debian 8 +
|
||||
* [x] CoreOS
|
||||
* [x] Debian 9 +
|
||||
* [x] macOS
|
||||
* [x] Windows 10
|
||||
* [x] Raspberry Pi (ARM)
|
||||
|
@ -3,7 +3,8 @@
|
||||
* 1.1.0 2019-06-30
|
||||
* 增加 `BuildKit`
|
||||
* 增加 `docker manifest` 命令使用说明
|
||||
|
||||
* 移除 `Ubuntu 14.04` `Debian 8` `Debian 7`
|
||||
|
||||
* 1.0.0: 2018-12-31
|
||||
* 全面支持 v18.x 新版本
|
||||
* 添加如何调试 Docker
|
||||
|
@ -22,7 +22,7 @@ $sysctl -w net.ipv4.ip_forward=1
|
||||
#### 访问所有端口
|
||||
当启动 Docker 服务(即 dockerd)的时候,默认会添加一条转发策略到本地主机 iptables 的 FORWARD 链上。策略为通过(`ACCEPT`)还是禁止(`DROP`)取决于配置`--icc=true`(缺省值)还是 `--icc=false`。当然,如果手动指定 `--iptables=false` 则不会添加 `iptables` 规则。
|
||||
|
||||
可见,默认情况下,不同容器之间是允许网络互通的。如果为了安全考虑,可以在 `/etc/docker/daemon.json` 文件中配置 `{"icc": false}` 来禁止它(Ubuntu 14.04 等使用 upstart 的系统在文件 `/etc/default/docker` 中配置 `DOCKER_OPTS=--icc=false`)。
|
||||
可见,默认情况下,不同容器之间是允许网络互通的。如果为了安全考虑,可以在 `/etc/docker/daemon.json` 文件中配置 `{"icc": false}` 来禁止它。
|
||||
|
||||
#### 访问指定端口
|
||||
在通过 `-icc=false` 关闭网络访问后,还可以通过 `--link=CONTAINER_NAME:ALIAS` 选项来访问容器的开放端口。
|
||||
|
@ -100,7 +100,7 @@ $ docker run --network=my-net --ip=172.25.3.3 -itd --name=my-container busybox
|
||||
|
||||
### Docker 的配置文件放在哪里,如何修改配置?
|
||||
|
||||
答:使用 `upstart` 的系统(如 Ubuntu 14.04)的配置文件在 `/etc/default/docker`,使用 `systemd` 的系统(如 Ubuntu 16.04、Centos 等)的配置文件在 `/etc/docker/daemon.json`。
|
||||
答:使用 `systemd` 的系统(如 Ubuntu 16.04、Centos 等)的配置文件在 `/etc/docker/daemon.json`。
|
||||
|
||||
|
||||
### 如何更改 Docker 的默认存储位置?
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本。我们可以通过 `<仓库名>:<标签>` 的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以 `latest` 作为默认标签。
|
||||
|
||||
以 [Ubuntu 镜像](https://hub.docker.com/_/ubuntu) 为例,`ubuntu` 是仓库的名字,其内包含有不同的版本标签,如,`16.04`, `18.04`。我们可以通过 `ubuntu:14.04`,或者 `ubuntu:18.04` 来具体指定所需哪个版本的镜像。如果忽略了标签,比如 `ubuntu`,那将视为 `ubuntu:latest`。
|
||||
以 [Ubuntu 镜像](https://hub.docker.com/_/ubuntu) 为例,`ubuntu` 是仓库的名字,其内包含有不同的版本标签,如,`16.04`, `18.04`。我们可以通过 `ubuntu:16.04`,或者 `ubuntu:18.04` 来具体指定所需哪个版本的镜像。如果忽略了标签,比如 `ubuntu`,那将视为 `ubuntu:latest`。
|
||||
|
||||
仓库名经常以 *两段式路径* 形式出现,比如 `jwilder/nginx-proxy`,前者往往意味着 Docker Registry 多用户环境下的用户名,后者则往往是对应的软件名。但这并非绝对,取决于所使用的具体 Docker Registry 的软件或服务。
|
||||
|
||||
|
@ -56,7 +56,6 @@ crashsystems/gitlab-docker A trusted, regularly updated build of GitL.
|
||||
sylvainlasnier/memcached This is a Memcached 1.4.14 docker images b... 16 [OK]
|
||||
ubuntu-upstart Upstart is an event-based replacement for ... 16 [OK]
|
||||
mbentley/ubuntu-django-uwsgi-nginx 16 [OK]
|
||||
ansible/ubuntu14.04-ansible Ubuntu 14.04 LTS with ansible 15 [OK]
|
||||
clue/ttrss The Tiny Tiny RSS feed reader allows you t... 14 [OK]
|
||||
dockerfile/ubuntu-desktop Trusted automated Ubuntu Desktop (LXDE) (h... 14 [OK]
|
||||
tutum/ubuntu Ubuntu image with SSH access. For the root... 12 [OK]
|
||||
|
@ -18,5 +18,3 @@ UUID APP IMAGE NAME STATE CREATED STARTED NETWORKS
|
||||
## 容器管理
|
||||
|
||||
第二个组件就是 `Docker`,它用来运行你的代码和应用。`CoreOS` 内置 `Docker`,具体使用请参考本书其他章节。
|
||||
|
||||
`CoreOS` 也内置了由自己开发的容器 `Rkt`,`Rkt` 不属于本书的讨论范围,这里不再赘述。
|
||||
|
@ -8,32 +8,33 @@
|
||||
|
||||
压缩包可以是本地文件、远程 Web 文件,甚至是从标准输入中得到。压缩包将会在镜像 `/` 目录展开,并直接作为镜像第一层提交。
|
||||
|
||||
比如我们想要创建一个 [OpenVZ](https://openvz.org) 的 Ubuntu 14.04 [模板](https://openvz.org/Download/template/precreated)的镜像:
|
||||
比如我们想要创建一个 [OpenVZ](https://openvz.org) 的 Ubuntu 16.04 [模板](https://openvz.org/Download/template/precreated)的镜像:
|
||||
|
||||
```bash
|
||||
$ docker import \
|
||||
http://download.openvz.org/template/precreated/ubuntu-14.04-x86_64-minimal.tar.gz \
|
||||
openvz/ubuntu:14.04
|
||||
Downloading from http://download.openvz.org/template/precreated/ubuntu-14.04-x86_64-minimal.tar.gz
|
||||
sha256:f477a6e18e989839d25223f301ef738b69621c4877600ae6467c4e5289822a79B/78.42 MB
|
||||
http://download.openvz.org/template/precreated/ubuntu-16.04-x86_64.tar.gz \
|
||||
openvz/ubuntu:16.04
|
||||
|
||||
Downloading from http://download.openvz.org/template/precreated/ubuntu-16.04-x86_64.tar.gz
|
||||
sha256:412b8fc3e3f786dca0197834a698932b9c51b69bd8cf49e100c35d38c9879213
|
||||
```
|
||||
|
||||
这条命令自动下载了 `ubuntu-14.04-x86_64-minimal.tar.gz` 文件,并且作为根文件系统展开导入,并保存为镜像 `openvz/ubuntu:14.04`。
|
||||
这条命令自动下载了 `ubuntu-16.04-x86_64.tar.gz` 文件,并且作为根文件系统展开导入,并保存为镜像 `openvz/ubuntu:16.04`。
|
||||
|
||||
导入成功后,我们可以用 `docker image ls` 看到这个导入的镜像:
|
||||
|
||||
```bash
|
||||
$ docker image ls openvz/ubuntu
|
||||
REPOSITORY TAG IMAGE ID CREATED SIZE
|
||||
openvz/ubuntu 14.04 f477a6e18e98 55 seconds ago 214.9 MB
|
||||
openvz/ubuntu 16.04 412b8fc3e3f7 55 seconds ago 505MB
|
||||
```
|
||||
|
||||
如果我们查看其历史的话,会看到描述中有导入的文件链接:
|
||||
|
||||
```bash
|
||||
$ docker history openvz/ubuntu:14.04
|
||||
$ docker history openvz/ubuntu:16.04
|
||||
IMAGE CREATED CREATED BY SIZE COMMENT
|
||||
f477a6e18e98 About a minute ago 214.9 MB Imported from http://download.openvz.org/template/precreated/ubuntu-14.04-x86_64-minimal.tar.gz
|
||||
f477a6e18e98 About a minute ago 214.9 MB Imported from http://download.openvz.org/template/precreated/ubuntu-16.04-x86_64.tar.gz
|
||||
```
|
||||
|
||||
### `docker save` 和 `docker load`
|
||||
|
@ -10,8 +10,6 @@ Docker CE 支持以下版本的 [Debian](https://www.debian.org/intro/about) 操
|
||||
|
||||
* Buster 10
|
||||
* Stretch 9
|
||||
* Jessie 8 (LTS) (Docker CE v18.06 及以下版本)
|
||||
* Wheezy 7.7 (EOL) (Docker CE v18.03 及以下版本)
|
||||
|
||||
#### 卸载旧版本
|
||||
|
||||
@ -23,16 +21,10 @@ $ sudo apt-get remove docker \
|
||||
docker.io
|
||||
```
|
||||
|
||||
#### Debian 7 Wheezy
|
||||
|
||||
Debian 7 的内核默认为 3.2,为了满足 Docker CE 的需求,应该安装 [`backports`](https://backports.debian.org/Instructions/) 的内核。
|
||||
|
||||
### 使用 APT 安装
|
||||
|
||||
由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。
|
||||
|
||||
Debian 8 Jessie 或者 Debian 9 Stretch 使用以下命令:
|
||||
|
||||
```bash
|
||||
$ sudo apt-get update
|
||||
|
||||
@ -45,20 +37,6 @@ $ sudo apt-get install \
|
||||
software-properties-common
|
||||
```
|
||||
|
||||
Debian 7 Wheezy 使用以下命令:
|
||||
|
||||
```bash
|
||||
$ sudo apt-get update
|
||||
|
||||
$ sudo apt-get install \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
lsb-release \
|
||||
python-software-properties
|
||||
|
||||
```
|
||||
|
||||
鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。
|
||||
|
||||
为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥。
|
||||
@ -88,14 +66,6 @@ $ sudo add-apt-repository \
|
||||
|
||||
>以上命令会添加稳定版本的 Docker CE APT 源,如果需要测试或每日构建版本的 Docker CE 请将 stable 改为 test 或者 nightly。
|
||||
|
||||
Debian 7 需要进行额外的操作:
|
||||
|
||||
编辑 `/etc/apt/sources.list` 将 deb-src 一行删除或者使用 # 注释。
|
||||
|
||||
```bash
|
||||
deb-src [arch=amd64] https://download.docker.com/linux/debian wheezy stable
|
||||
```
|
||||
|
||||
#### 安装 Docker CE
|
||||
|
||||
更新 apt 软件包缓存,并安装 `docker-ce`。
|
||||
@ -124,12 +94,6 @@ $ sudo systemctl enable docker
|
||||
$ sudo systemctl start docker
|
||||
```
|
||||
|
||||
Debian 7 Wheezy 请使用以下命令启动
|
||||
|
||||
```bash
|
||||
$ sudo service docker start
|
||||
```
|
||||
|
||||
### 建立 docker 用户组
|
||||
|
||||
默认情况下,`docker` 命令会使用 [Unix socket](https://en.wikipedia.org/wiki/Unix_domain_socket) 与 Docker 引擎通讯。而只有 `root` 用户和 `docker` 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 `root` 用户。因此,更好地做法是将需要使用 `docker` 的用户加入 `docker` 用户组。
|
||||
|
@ -12,20 +12,6 @@
|
||||
|
||||
我们以 Docker 官方加速器 `https://registry.docker-cn.com` 为例进行介绍。
|
||||
|
||||
### Ubuntu 14.04、Debian 7 Wheezy
|
||||
|
||||
对于使用 [upstart](http://upstart.ubuntu.com/) 的系统而言,编辑 `/etc/default/docker` 文件,在其中的 `DOCKER_OPTS` 中配置加速器地址:
|
||||
|
||||
```bash
|
||||
DOCKER_OPTS="--registry-mirror=https://registry.docker-cn.com"
|
||||
```
|
||||
|
||||
重新启动服务。
|
||||
|
||||
```bash
|
||||
$ sudo service docker restart
|
||||
```
|
||||
|
||||
### Ubuntu 16.04+、Debian 8+、CentOS 7
|
||||
|
||||
对于使用 [systemd](https://www.freedesktop.org/wiki/Software/systemd/) 的系统,请在 `/etc/docker/daemon.json` 中写入如下内容(如果文件不存在请新建该文件)
|
||||
|
@ -10,7 +10,6 @@ Docker CE 支持以下版本的 [Ubuntu](https://www.ubuntu.com/server) 操作
|
||||
|
||||
* Bionic 18.04 (LTS)
|
||||
* Xenial 16.04 (LTS)
|
||||
* Trusty 14.04 (LTS) (Docker CE v18.06 及以下版本)
|
||||
|
||||
Docker CE 可以安装在 64 位的 x86 平台或 ARM 平台上。Ubuntu 发行版中,LTS(Long-Term-Support)长期支持版本,会获得 5 年的升级维护支持,这样的版本会更稳定,因此在生产环境中推荐使用 LTS 版本。
|
||||
|
||||
@ -24,24 +23,6 @@ $ sudo apt-get remove docker \
|
||||
docker.io
|
||||
```
|
||||
|
||||
#### Ubuntu 14.04 可选内核模块
|
||||
|
||||
从 Ubuntu 14.04 开始,一部分内核模块移到了可选内核模块包 (`linux-image-extra-*`) ,以减少内核软件包的体积。正常安装的系统应该会包含可选内核模块包,而一些裁剪后的系统可能会将其精简掉。`AUFS` 内核驱动属于可选内核模块的一部分,作为推荐的 Docker 存储层驱动,一般建议安装可选内核模块包以使用 `AUFS`。
|
||||
|
||||
如果系统没有安装可选内核模块的话,可以执行下面的命令来安装可选内核模块包:
|
||||
|
||||
```bash
|
||||
$ sudo apt-get update
|
||||
|
||||
$ sudo apt-get install \
|
||||
linux-image-extra-$(uname -r) \
|
||||
linux-image-extra-virtual
|
||||
```
|
||||
|
||||
#### Ubuntu 16.04 +
|
||||
|
||||
Ubuntu 16.04 + 上的 Docker CE 默认使用 `overlay2` 存储层驱动,无需手动配置。
|
||||
|
||||
### 使用 APT 安装
|
||||
|
||||
由于 `apt` 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。
|
||||
@ -114,12 +95,6 @@ $ sudo systemctl enable docker
|
||||
$ sudo systemctl start docker
|
||||
```
|
||||
|
||||
Ubuntu 14.04 请使用以下命令启动:
|
||||
|
||||
```bash
|
||||
$ sudo service docker start
|
||||
```
|
||||
|
||||
### 建立 docker 用户组
|
||||
|
||||
默认情况下,`docker` 命令会使用 [Unix socket](https://en.wikipedia.org/wiki/Unix_domain_socket) 与 Docker 引擎通讯。而只有 `root` 用户和 `docker` 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 `root` 用户。因此,更好地做法是将需要使用 `docker` 的用户加入 `docker` 用户组。
|
||||
|
@ -97,20 +97,6 @@ REPOSITORY TAG IMAGE ID CREAT
|
||||
|
||||
这是因为 Docker 默认不允许非 `HTTPS` 方式推送镜像。我们可以通过 Docker 的配置选项来取消这个限制,或者查看下一节配置能够通过 `HTTPS` 访问的私有仓库。
|
||||
|
||||
#### Ubuntu 14.04, Debian 7 Wheezy
|
||||
|
||||
对于使用 `upstart` 的系统而言,编辑 `/etc/default/docker` 文件,在其中的 `DOCKER_OPTS` 中增加如下内容:
|
||||
|
||||
```bash
|
||||
DOCKER_OPTS="--registry-mirror=https://registry.docker-cn.com --insecure-registries=192.168.199.100:5000"
|
||||
```
|
||||
|
||||
重新启动服务。
|
||||
|
||||
```bash
|
||||
$ sudo service docker restart
|
||||
```
|
||||
|
||||
#### Ubuntu 16.04+, Debian 8+, centos 7
|
||||
|
||||
对于使用 `systemd` 的系统,请在 `/etc/docker/daemon.json` 中写入如下内容(如果文件不存在请新建该文件)
|
||||
|
@ -14,7 +14,7 @@ Docker 目前支持的联合文件系统包括 `OverlayFS`, `AUFS`, `Btrfs`, `VF
|
||||
|
||||
|Linux 发行版 | Docker 推荐使用的存储驱动 |
|
||||
| :-- | :-- |
|
||||
|Docker CE on Ubuntu | `overlay2` (Ubuntu 14.04.4 +, 16.04 +) |
|
||||
|Docker CE on Ubuntu | `overlay2` (16.04 +) |
|
||||
|Docker CE on Debian | `overlay2` (Debian Stretch), `aufs`, `devicemapper` |
|
||||
|Docker CE on CentOS | `overlay2` |
|
||||
|Docker CE on Fedora | `overlay2` |
|
||||
|
Loading…
Reference in New Issue
Block a user