mirror of
https://github.com/yeasy/docker_practice.git
synced 2024-12-25 22:48:54 +00:00
Update format
Signed-off-by: Kang HuaiShuai <khs1994@khs1994.com>
This commit is contained in:
parent
1aef2b7734
commit
4873267f31
@ -1,9 +1,9 @@
|
|||||||
# 操作系统
|
# 操作系统
|
||||||
|
|
||||||
目前常用的 Linux 发行版主要包括 Debian/Ubuntu 系列和 CentOS/Fedora 系列。
|
目前常用的 Linux 发行版主要包括 `Debian/Ubuntu` 系列和 `CentOS/Fedora` 系列。
|
||||||
|
|
||||||
前者以自带软件包版本较新而出名;后者则宣称运行更稳定一些。选择哪个操作系统取决于读者的具体需求。
|
前者以自带软件包版本较新而出名;后者则宣称运行更稳定一些。选择哪个操作系统取决于读者的具体需求。
|
||||||
|
|
||||||
使用 Docker,读者只需要一个命令就能快速获取一个 Linux 发行版镜像,这是以往包括各种虚拟化技术都难以实现的。这些镜像一般都很精简,但是可以支持完整 Linux 系统的大部分功能。
|
使用 Docker,读者只需要一个命令就能快速获取一个 Linux 发行版镜像,这是以往包括各种虚拟化技术都难以实现的。这些镜像一般都很精简,但是可以支持完整 Linux 系统的大部分功能。
|
||||||
|
|
||||||
本章将介绍如何使用 Docker 安装和使用 Busybox、Alphine、Debian/Ubuntu、CentOS/Fedora 等操作系统。
|
本章将介绍如何使用 Docker 安装和使用 `Busybox`、`Alphine`、`Debian/Ubuntu`、`CentOS/Fedora` 等操作系统。
|
||||||
|
@ -33,15 +33,15 @@ $ docker run alpine echo '123'
|
|||||||
|
|
||||||
### 迁移至 `Alpine` 基础镜像
|
### 迁移至 `Alpine` 基础镜像
|
||||||
|
|
||||||
目前,大部分 Docker 官方镜像都已经支持 Alpine 作为基础镜像,可以很容易进行迁移。
|
目前,大部分 Docker 官方镜像都已经支持 `Alpine` 作为基础镜像,可以很容易进行迁移。
|
||||||
|
|
||||||
例如:
|
例如:
|
||||||
|
|
||||||
* ubuntu/debian -> alpine
|
* `ubuntu/debian` -> `alpine`
|
||||||
* python:2.7 -> python:2.7-alpine
|
* `python:3` -> `python:3-alpine`
|
||||||
* ruby:2.3 -> ruby:2.3-alpine
|
* `ruby:2.6` -> `ruby:2.6-alpine`
|
||||||
|
|
||||||
另外,如果使用 `Alpine` 镜像替换 `Ubuntu` 基础镜像,安装软件包时需要用 apk 包管理器替换 apt 工具,如
|
另外,如果使用 `Alpine` 镜像替换 `Ubuntu` 基础镜像,安装软件包时需要用 `apk` 包管理器替换 `apt` 工具,如
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ apk add --no-cache <package>
|
$ apk add --no-cache <package>
|
||||||
|
@ -4,13 +4,13 @@
|
|||||||
|
|
||||||
![Busybox - Linux 瑞士军刀](_images/busybox-logo.png)
|
![Busybox - Linux 瑞士军刀](_images/busybox-logo.png)
|
||||||
|
|
||||||
BusyBox 是一个集成了一百多个最常用 Linux 命令和工具(如 cat、echo、grep、mount、telnet 等)的精简工具箱,它只需要几 MB 的大小,很方便进行各种快速验证,被誉为“Linux 系统的瑞士军刀”。
|
`BusyBox` 是一个集成了一百多个最常用 Linux 命令和工具(如 `cat`、`echo`、`grep`、`mount`、`telnet` 等)的精简工具箱,它只需要几 MB 的大小,很方便进行各种快速验证,被誉为“Linux 系统的瑞士军刀”。
|
||||||
|
|
||||||
BusyBox 可运行于多款 POSIX 环境的操作系统中,如 Linux(包括 Android)、Hurd、FreeBSD 等。
|
`BusyBox` 可运行于多款 POSIX 环境的操作系统中,如 `Linux`(包括 `Android`)、`Hurd`、`FreeBSD` 等。
|
||||||
|
|
||||||
### 获取官方镜像
|
### 获取官方镜像
|
||||||
|
|
||||||
在 Docker Hub 中搜索 busybox 相关的镜像。
|
在 Docker Hub 中搜索 `busybox` 相关的镜像。
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ docker search busybox
|
$ docker search busybox
|
||||||
@ -24,7 +24,7 @@ azukiapp/busybox This image is meant to be used as the base...
|
|||||||
...
|
...
|
||||||
```
|
```
|
||||||
|
|
||||||
读者可以看到最受欢迎的镜像同时带有 OFFICIAL 标记,说明它是官方镜像。用户使用 docker pull 指令下载镜像 `busybox:latest`:
|
读者可以看到最受欢迎的镜像同时带有 `OFFICIAL` 标记,说明它是官方镜像。用户使用 `docker pull` 指令下载 `busybox:latest` 镜像:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ docker pull busybox:latest
|
$ docker pull busybox:latest
|
||||||
@ -36,7 +36,7 @@ df7546f9f060: Pull complete
|
|||||||
Status: Downloaded newer image for busybox:latest
|
Status: Downloaded newer image for busybox:latest
|
||||||
```
|
```
|
||||||
|
|
||||||
下载后,可以看到 busybox 镜像只有2.433 MB:
|
下载后,可以看到 `busybox` 镜像只有 2.433 MB:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ docker image ls
|
$ docker image ls
|
||||||
@ -46,7 +46,7 @@ busybox latest e72ac664f4f0 6 weeks ago
|
|||||||
|
|
||||||
### 运行 busybox
|
### 运行 busybox
|
||||||
|
|
||||||
启动一个 busybox 容器,并在容器中执行 grep 命令。
|
启动一个 `busybox` 容器,并在容器中执行 `grep` 命令。
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ docker run -it busybox
|
$ docker run -it busybox
|
||||||
@ -103,7 +103,7 @@ proc on /proc/bus type proc (ro,nosuid,nodev,noexec,relatime)
|
|||||||
tmpfs on /proc/kcore type tmpfs (rw,nosuid,mode=755)
|
tmpfs on /proc/kcore type tmpfs (rw,nosuid,mode=755)
|
||||||
```
|
```
|
||||||
|
|
||||||
busybox 镜像虽然小巧,但包括了大量常见的 Linux 命令,读者可以用它快速熟悉 Linux 命令。
|
`busybox` 镜像虽然小巧,但包括了大量常见的 Linux 命令,读者可以用它快速熟悉 Linux 命令。
|
||||||
|
|
||||||
### 相关资源
|
### 相关资源
|
||||||
|
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
### CentOS 系统简介
|
### CentOS 系统简介
|
||||||
|
|
||||||
CentOS 和 Fedora 都是基于 Redhat 的常见 Linux 分支。CentOS 是目前企业级服务器的常用操作系统;Fedora 则主要面向个人桌面用户。
|
`CentOS` 和 `Fedora` 都是基于 `Redhat` 的常见 Linux 分支。`CentOS` 是目前企业级服务器的常用操作系统;`Fedora` 则主要面向个人桌面用户。
|
||||||
|
|
||||||
![CentOS 操作系统](_images/centos-logo.png)
|
![CentOS 操作系统](_images/centos-logo.png)
|
||||||
|
|
||||||
CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统),它是基于 Red Hat Enterprise Linux 源代码编译而成。由于 CentOS 与 Redhat Linux 源于相同的代码基础,所以很多成本敏感且需要高稳定性的公司就使用 CentOS 来替代商业版 Red Hat Enterprise Linux。CentOS 自身不包含闭源软件。
|
CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统),它是基于 Red Hat Enterprise Linux 源代码编译而成。由于 CentOS 与 Redhat Linux 源于相同的代码基础,所以很多成本敏感且需要高稳定性的公司就使用 `CentOS` 来替代商业版 Red Hat Enterprise Linux。CentOS 自身不包含闭源软件。
|
||||||
|
|
||||||
#### 使用 CentOS 官方镜像
|
#### 使用 CentOS 官方镜像
|
||||||
|
|
||||||
@ -19,7 +19,7 @@ centos The official... 2543 [OK]
|
|||||||
jdeathe/centos-ssh 27 [OK]
|
jdeathe/centos-ssh 27 [OK]
|
||||||
```
|
```
|
||||||
|
|
||||||
使用 docker run 直接运行最新的 CentOS 镜像,并登录 bash。
|
使用 docker run 直接运行最新的 CentOS 镜像,并登录 `bash`。
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ docker run -it centos bash
|
$ docker run -it centos bash
|
||||||
@ -36,7 +36,7 @@ CentOS Linux release 7.2.1511 (Core)
|
|||||||
|
|
||||||
![Fedora 操作系统](_images/fedora-logo.png)
|
![Fedora 操作系统](_images/fedora-logo.png)
|
||||||
|
|
||||||
Fedora 由 Fedora Project 社区开发,红帽公司赞助的 Linux 发行版。它的目标是创建一套新颖、多功能并且自由和开源的操作系统。Fedora 的功能对于用户而言,它是一套功能完备的,可以更新的免费操作系统,而对赞助商 Red Hat 而言,它是许多新技术的测试平台。被认为可用的技术最终会加入到 Red Hat Enterprise Linux中。
|
`Fedora` 由 Fedora Project 社区开发,红帽公司赞助的 Linux 发行版。它的目标是创建一套新颖、多功能并且自由和开源的操作系统。`Fedora` 的功能对于用户而言,它是一套功能完备的,可以更新的免费操作系统,而对赞助商 Red Hat 而言,它是许多新技术的测试平台。被认为可用的技术最终会加入到 Red Hat Enterprise Linux 中。
|
||||||
|
|
||||||
#### 使用 Fedora 官方镜像
|
#### 使用 Fedora 官方镜像
|
||||||
|
|
||||||
@ -51,7 +51,7 @@ gluster/gluster-fedora Official GlusterFS image [ Fedora 21 + Glu... 3
|
|||||||
startx/fedora Simple container used for all startx based... 2 [OK]
|
startx/fedora Simple container used for all startx based... 2 [OK]
|
||||||
```
|
```
|
||||||
|
|
||||||
使用 docker run 命令直接运行 Fedora 官方镜像,并登录 bash。
|
使用 `docker run` 命令直接运行 `Fedora` 官方镜像,并登录 `bash`。
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ docker run -it fedora bash
|
$ docker run -it fedora bash
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
## 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)
|
||||||
|
|
||||||
Debian 是由 GPL 和其他自由软件许可协议授权的自由软件组成的操作系统,由Debian 计划(Debian Project)组织维护。Debian 计划是一个独立的、分散的组织,由 3000 人志愿者组成,接受世界多个非盈利组织的资金支持,Software in the Public Interest 提供支持并持有商标作为保护机构。Debian 以其坚守 Unix 和自由软件的精神,以及其给予用户的众多选择而闻名。现时 Debian 包括了超过 25,000 个软件包并支持 12 个计算机系统结构。
|
`Debian` 是由 `GPL` 和其他自由软件许可协议授权的自由软件组成的操作系统,由 Debian 计划(Debian Project)组织维护。Debian 计划是一个独立的、分散的组织,由 3000 人志愿者组成,接受世界多个非盈利组织的资金支持,Software in the Public Interest 提供支持并持有商标作为保护机构。Debian 以其坚守 Unix 和自由软件的精神,以及其给予用户的众多选择而闻名。现时 Debian 包括了超过 25,000 个软件包并支持 12 个计算机系统结构。
|
||||||
|
|
||||||
Debian 作为一个大的系统组织框架,其下有多种不同操作系统核心的分支计划,主要为采用 Linux 核心的 Debian GNU/Linux 系统,其他还有采用 GNU Hurd 核心的 Debian GNU/Hurd 系统、采用 FreeBSD 核心的 Debian GNU/kFreeBSD 系统,以及采用 NetBSD 核心的 Debian GNU/NetBSD 系统。甚至还有利用 Debian 的系统架构和工具,采用 OpenSolaris 核心构建而成的 Nexenta OS 系统。在这些 Debian 系统中,以采用 Linux 核心的 Debian GNU/Linux 最为著名。
|
Debian 作为一个大的系统组织框架,其下有多种不同操作系统核心的分支计划,主要为采用 Linux 核心的 Debian GNU/Linux 系统,其他还有采用 GNU Hurd 核心的 Debian GNU/Hurd 系统、采用 FreeBSD 核心的 Debian GNU/kFreeBSD 系统,以及采用 NetBSD 核心的 Debian GNU/NetBSD 系统。甚至还有利用 Debian 的系统架构和工具,采用 OpenSolaris 核心构建而成的 Nexenta OS 系统。在这些 Debian 系统中,以采用 Linux 核心的 Debian GNU/Linux 最为著名。
|
||||||
|
|
||||||
@ -63,9 +63,9 @@ tutum/ubuntu Ubuntu image with SSH access. For the root.
|
|||||||
|
|
||||||
根据搜索出来的结果,读者可以自行选择下载镜像并使用。
|
根据搜索出来的结果,读者可以自行选择下载镜像并使用。
|
||||||
|
|
||||||
下面以 ubuntu 18.04 为例,演示如何使用该镜像安装一些常用软件。
|
下面以 `ubuntu:18.04` 为例,演示如何使用该镜像安装一些常用软件。
|
||||||
|
|
||||||
首先使用 `-ti` 参数启动容器,登录 bash,查看 ubuntu 的发行版本号。
|
首先使用 `-ti` 参数启动容器,登录 `bash`,查看 `ubuntu` 的发行版本号。
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ docker run -ti ubuntu:18.04 /bin/bash
|
$ docker run -ti ubuntu:18.04 /bin/bash
|
||||||
@ -94,7 +94,7 @@ Reading state information... Done
|
|||||||
E: Unable to locate package curl
|
E: Unable to locate package curl
|
||||||
```
|
```
|
||||||
|
|
||||||
这并非系统不支持 `apt-get` 命令。Docker 镜像在制作时为了精简清除了 apt 仓库信息,因此需要先执行 `apt-get update` 命令来更新仓库信息。更新信息后即可成功通过 apt-get 命令来安装软件。
|
这并非系统不支持 `apt-get` 命令。Docker 镜像在制作时为了精简清除了 `apt` 仓库信息,因此需要先执行 `apt-get update` 命令来更新仓库信息。更新信息后即可成功通过 `apt-get` 命令来安装软件。
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
root@7d93de07bf76:/# apt-get update
|
root@7d93de07bf76:/# apt-get update
|
||||||
|
@ -6,6 +6,6 @@
|
|||||||
|
|
||||||
读者可以根据具体情况来选择。一般来说:
|
读者可以根据具体情况来选择。一般来说:
|
||||||
|
|
||||||
* 官方镜像体积都比较小,只带有一些基本的组件。 精简的系统有利于安全、稳定和高效的运行,也适合进行定制化。
|
* 官方镜像体积都比较小,只带有一些基本的组件。 精简的系统有利于安全、稳定和高效的运行,也适合进行个性化定制。
|
||||||
|
|
||||||
* 出于安全考虑,几乎所有官方制作的镜像都没有安装 SSH 服务,无法通过用户名和密码直接登录到容器中。
|
* 出于安全考虑,几乎所有官方制作的镜像都没有安装 SSH 服务,无法通过用户名和密码直接登录到容器中。
|
||||||
|
Loading…
Reference in New Issue
Block a user