1 Commits

Author SHA1 Message Date
hellozrh
185af1abc1 Merge 8d129d0ead into 85c5a280a4 2023-07-19 07:22:09 +00:00
11 changed files with 61 additions and 88 deletions

View File

@@ -1,6 +1,8 @@
name: Check link
on:
# push:
# pull_request:
workflow_dispatch:
jobs:
@@ -8,7 +10,9 @@ jobs:
name: check-link
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.1.1
- uses: actions/checkout@master
with:
fetch-depth: 1
# search Issues :-(
- run: |
docker run -i --rm \

View File

@@ -1,10 +1,10 @@
name: CI
on:
push:
pull_request:
workflow_dispatch:
name: CI
defaults:
run:
shell: bash --noprofile --norc -exo pipefail {0}
@@ -14,7 +14,9 @@ jobs:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.1.1
- uses: actions/checkout@master
with:
fetch-depth: 2
- name: Build Gitbook
uses: docker://yeasy/docker_practice
with:
@@ -66,8 +68,8 @@ jobs:
PCIT_USERNAME: khs1994
- name: vuepress
run: |
export NODE_OPTIONS=--openssl-legacy-provider
sudo rm -rf _book
# npm i vuepress --save-dev
npm i
git clone https://github.com/docker-practice/.vuepress .vuepress2
@@ -78,6 +80,7 @@ jobs:
npx vuepress --version
npm run vuepress:build
# echo "vuepress.docker-practice.com" > .vuepress/dist/CNAME
echo "vuepress.mirror.docker-practice.com" > .vuepress/dist/CNAME
cp -r _images .vuepress/dist

View File

@@ -1,2 +1,2 @@
Django>=5.0.6,<6.0
Django>=2.0,<3.0
psycopg2>=2.7,<3.0

View File

@@ -40,7 +40,7 @@ CMD service nginx start
对于容器而言其启动程序就是容器应用进程容器就是为了主进程而存在的主进程退出容器就失去了存在的意义从而退出其它辅助进程不是它需要关心的东西
而使用 `service nginx start` 命令则是希望 init 系统以后台守护进程形式启动 nginx 服务而刚才说了 `CMD service nginx start` 会被理解为 `CMD [ "sh", "-c", "service nginx start"]`因此主进程实际上是 `sh`那么当 `service nginx start` 命令结束后`sh` 也就结束了`sh` 作为主进程退出了自然就会令容器退出
而使用 `service nginx start` 命令则是希望 upstart 以后台守护进程形式启动 `nginx` 服务而刚才说了 `CMD service nginx start` 会被理解为 `CMD [ "sh", "-c", "service nginx start"]`因此主进程实际上是 `sh`那么当 `service nginx start` 命令结束后`sh` 也就结束了`sh` 作为主进程退出了自然就会令容器退出
正确的做法是直接执行 `nginx` 可执行文件并且要求以前台形式运行比如

View File

@@ -35,8 +35,7 @@ WORKDIR /go/src/github.com/go/helloworld/
COPY app.go .
RUN go mod init helloworld \
&& go get -d -v github.com/go-sql-driver/mysql \
RUN go get -d -v github.com/go-sql-driver/mysql \
&& CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app . \
&& cp /go/src/github.com/go/helloworld/app /root

View File

@@ -65,7 +65,7 @@ $ echo \
```
>以上命令会添加稳定版本的 Docker APT 如果需要测试版本的 Docker 请将 stable 改为 test Debian11可能不使用`/etc/apt/keyrings/` 如gpg错误可以考虑更换为`/etc/apt/trusted.gpg.d` [issue 15727](https://github.com/docker/docs/issues/15727)。
>以上命令会添加稳定版本的 Docker APT 如果需要测试版本的 Docker 请将 stable 改为 test
### 安装 Docker

View File

@@ -1,16 +1,16 @@
# 镜像加速器
国内从 Docker Hub 拉取镜像有时会遇到困难此时可以配置镜像加速器~~国内很多云服务商都提供了国内加速器服务例如~~
国内从 Docker Hub 拉取镜像有时会遇到困难此时可以配置镜像加速器国内很多云服务商都提供了国内加速器服务例如
* [阿里云加速器(点击管理控制台 -> 登录账号(淘宝账号) -> 侧镜像工具 -> 镜像加速器 -> 复制加速器地址)](https://cr.console.aliyun.com/cn-hangzhou/instances)
* [阿里云加速器(点击管理控制台 -> 登录账号(淘宝账号) -> 侧镜像工具 -> 镜像加速器 -> 复制加速器地址)](https://www.aliyun.com/product/acr?source=5176.11533457&userCode=8lx5zmtu)
* [网易云加速器 `https://hub-mirror.c.163.com`](https://www.163yun.com/help/documents/56918246390157312)
* [百度云加速器 `https://mirror.baidubce.com`](https://cloud.baidu.com/doc/CCE/s/Yjxppt74z#%E4%BD%BF%E7%94%A8dockerhub%E5%8A%A0%E9%80%9F%E5%99%A8)
**由于镜像服务可能出现宕机建议同时配置多个镜像各个镜像站测试结果请到 [docker-practice/docker-registry-cn-mirror-test](https://github.com/docker-practice/docker-registry-cn-mirror-test/actions) 查看。**
> 国内各大云服务商腾讯云阿里云百度云均提供了 Docker 镜像加速服务建议根据运行 Docker 的云平台选择对应的镜像加速服务具体请参考本页最后一小节
本节我们以 [AtomHub 可信镜像中心](https://hub.atomgit.com/) 镜像服务 `https://hub.atomgit.com` 为例进行介绍。
> `hub.atomgit.com` 仅包含部分官方镜像可以满足初学者的使用
本节我们以 [网易云](https://www.163yun.com/) 镜像服务 `https://hub-mirror.c.163.com` 为例进行介绍。
## Ubuntu 16.04+Debian 8+CentOS 7+
@@ -29,7 +29,8 @@ $ systemctl cat docker | grep '\-\-registry\-mirror'
```json
{
"registry-mirrors": [
"https://hub.atomgit.com"
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
]
}
```
@@ -45,12 +46,13 @@ $ sudo systemctl restart docker
## Windows 10
对于使用 `Windows 10` 的用户在任务栏托盘 Docker 图标内右键菜单选择 `Change settings`打开配置窗口后在左侧导航菜单选择 `Docker Engine`在右侧像下边一样编辑 json 文件之后点击 `Apply & Restart` 保存后 Docker 就会重启并应用配置的镜像地址了
对于使用 `Windows 10` 的用户在任务栏托盘 Docker 图标内右键菜单选择 `Settings`打开配置窗口后在左侧导航菜单选择 `Docker Engine`在右侧像下边一样编辑 json 文件之后点击 `Apply & Restart` 保存后 Docker 就会重启并应用配置的镜像地址了
```json
{
"registry-mirrors": [
"https://hub.atomgit.com"
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
]
}
```
@@ -62,7 +64,8 @@ $ sudo systemctl restart docker
```json
{
"registry-mirrors": [
"https://hub.atomgit.com"
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
]
}
```
@@ -73,7 +76,7 @@ $ sudo systemctl restart docker
```bash
Registry Mirrors:
https://hub.atomgit.com/
https://hub-mirror.c.163.com/
```
## `k8s.gcr.io` 镜像
@@ -97,8 +100,6 @@ $ docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/xxx
* https://dockerhub.azk8s.cn **已转为私有**
* https://reg-mirror.qiniu.com
* https://registry.docker-cn.com
* https://hub-mirror.c.163.com
* https://mirror.baidubce.com
建议 **watch页面右上角** [镜像测试](https://github.com/docker-practice/docker-registry-cn-mirror-test) 这个 GitHub 仓库,我们会在此更新各个镜像地址的状态。

View File

@@ -32,7 +32,7 @@ sudo yum list docker-ce --showduplicates|sort -r
Loading mirror speeds from cached hostfile
Loaded plugins: fastestmirror
docker-ce.x86_64 24.0.4-1.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.8-3.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.7-3.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.6-3.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.5-3.el7 docker-ce-stable
@@ -46,7 +46,9 @@ docker-ce.x86_64 3:19.03.1-3.el7 docker-ce-stable
#### 下载到指定文件夹(A)
```bash
sudo yum install --downloadonly --downloaddir=/tmp/docker24_offline_install/ docker-ce-24.0.4-1.el7 docker-ce-cli-24.0.4-1.el7
mkdir -p /home/download/docker-ce-19
cd /home/download/docker-ce-19
sudo repotrack docker-ce-19.03.8-3.el7 docker-ce-cli-19.03.8-3.el7
```
```bash
@@ -56,11 +58,11 @@ Dependencies Resolved
Package Arch Version Repository Size
====================================================================================================================================================================================
Installing:
docker-ce x86_64 24.0.4-1.el7 docker 25 M
docker-ce x86_64 3:19.03.8-3.el7 docker 25 M
Installing for dependencies:
container-selinux noarch 24.0.4-1.el7 extras 39 k
containerd.io x86_64 24.0.4-1.el7 docker 23 M
docker-ce-cli x86_64 24.0.4-1.el7 docker 40 M
container-selinux noarch 2:2.107-3.el7 extras 39 k
containerd.io x86_64 1.2.13-3.1.el7 docker 23 M
docker-ce-cli x86_64 1:19.03.8-3.el7 docker 40 M
Transaction Summary
====================================================================================================================================================================================
@@ -69,17 +71,17 @@ Install 1 Package (+3 Dependent packages)
Total download size: 87 M
Installed size: 363 M
Background downloading packages, then exiting:
(1/4): container-selinux-24.0.4-1.el7.noarch.rpm | 39 kB 00:00:00
(2/4): containerd.io-24.0.4-1.el7.x86_64.rpm | 23 MB 00:00:00
(3/4): docker-ce-24.0.4-1.el7.x86_64.rpm | 25 MB 00:00:00
(4/4): docker-ce-cli-24.0.4-1.el7.x86_64.rpm | 40 MB 00:00:00
(1/4): container-selinux-2.107-3.el7.noarch.rpm | 39 kB 00:00:00
(2/4): containerd.io-1.2.13-3.1.el7.x86_64.rpm | 23 MB 00:00:00
(3/4): docker-ce-19.03.8-3.el7.x86_64.rpm | 25 MB 00:00:00
(4/4): docker-ce-cli-19.03.8-3.el7.x86_64.rpm | 40 MB 00:00:00
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 118 MB/s | 87 MB 00:00:00
exiting because "Download Only" specified
```
#### 复制到目标服务器之后进入文件夹安装(C-N)
* 离线安装时必须使用rpm命令不检查依赖的方式安装
安装时不检查依赖
```bash
rpm -Uvh *.rpm --nodeps --force
```
@@ -106,7 +108,7 @@ sudo yum versionlock list
```bash
Loaded plugins: fastestmirror, versionlock
3:docker-ce-24.0.4-1.el7.*
3:docker-ce-18.09.9-3.el7.*
versionlock list done
```
@@ -117,7 +119,7 @@ sudo yum install docker-ce
Loaded plugins: fastestmirror, versionlock
Loading mirror speeds from cached hostfile
Excluding 1 update due to versionlock (use "yum versionlock status" to show it)
Package 3:docker-ce-24.0.4-1.el7.x86_64 already installed and latest version
Package 3:docker-ce-18.09.9-3.el7.x86_64 already installed and latest version
Nothing to do
```
@@ -129,7 +131,7 @@ sudo yum versionlock delete docker-ce
```bash
Loaded plugins: fastestmirror, versionlock
Deleting versionlock for: 3:docker-ce-24.0.4-1.el7.*
Deleting versionlock for: 3:docker-ce-18.09.9-3.el7.*
versionlock deleted: 1
```
@@ -247,3 +249,4 @@ sudo systemctl enable docker
```

View File

@@ -9,8 +9,6 @@ Docker 不仅支持 `x86_64` 架构的计算机,同时也支持 `ARM` 架构
Docker 支持以下版本的 [Raspberry Pi OS](https://www.raspberrypi.org/software/operating-systems/) 操作系统:
* Raspberry Pi OS Buster
* Raspberry Pi OS Bullseye
* Raspberry Pi OS Bookworm
** `Raspberry Pi OS` 由树莓派的开发与维护机构 [树莓派基金会](https://www.raspberrypi.org/) 官方支持,并推荐用作树莓派的首选系统,其基于 `Debian`。
@@ -60,33 +58,6 @@ $ sudo add-apt-repository \
>以上命令会添加稳定版本的 Docker APT 如果需要测试版本的 Docker 请将 stable 改为 test
#### 报错解决办法
`Raspberry Pi OS Bullseye/Bookworm` 添加 Docker 软件源的步骤可能会出现如下报错:
```bash
Traceback (most recent call last):
File "/usr/bin/add-apt-repository", line 95, in <module>
sp = SoftwareProperties(options=options)
File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 109, in __init__
self.reload_sourceslist()
File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 599, in reload_sourceslist
self.distro.get_sources(self.sourceslist)
File "/usr/lib/python3/dist-packages/aptsources/distro.py", line 91, in get_sources
raise NoDistroTemplateException(
aptsources.distro.NoDistroTemplateException: Error: could not find a distribution template for Raspbian/bullseye
```
通过以下命令手动添加镜像源到 `/etc/apt/sources.list` 文件中即可解决:
```bash
$ sudo echo "deb [arch=armhf] https://mirrors.aliyun.com/docker-ce/linux/raspbian $(lsb_release -cs) stable" | sudo tee -a /etc/apt/sources.list
# 官方源
# $ sudo echo "deb [arch=armhf] https://download.docker.com/linux/raspbian $(lsb_release -cs) stable" | sudo tee -a /etc/apt/sources.list
```
### 安装 Docker
更新 apt 软件包缓存并安装 `docker-ce`

View File

@@ -6,31 +6,23 @@
### 系统要求
Docker 支持诸多版本的 [Ubuntu](https://ubuntu.com/server) 操作系统。但是较旧的版本上将不会有Docker新版本的持续更新以截至2024年中的几个 Ubuntu LTSLong Term Support长期支持版本为例
Docker 支持以下版本的 [Ubuntu](https://ubuntu.com/server) 操作系统:
* Ubuntu Noble 24.04 (LTS)Docker v27.2.1
* Ubuntu Jammy 22.04 (LTS), Docker v27.2.1
* Ubuntu Focal 20.04 (LTS), Docker v27.2.1
* Ubuntu Bionic 18.04 (LTS)Docker v24.0.2
* Ubuntu Hirsute 21.04
* Ubuntu Groovy 20.10
* Ubuntu Focal 20.04 (LTS)
* Ubuntu Bionic 18.04 (LTS)
Ubuntu LTS 版本上目前 Docker 支持 amd64arm64armhfppc64els390x 5 平台而非 LTS 版本支持的平台通常较少同时LTS 版本会获得 5 年的升级维护支持这样的系统会获得更长期的安全保障因此在生产环境中推荐使用 LTS 版本
Docker 可以安装在 64 位的 x86 平台或 ARM 平台Ubuntu 发行版中LTSLong-Term-Support长期支持版本会获得 5 年的升级维护支持这样的版本会更稳定因此在生产环境中推荐使用 LTS 版本
### 卸载旧版本
旧版本的 Docker 称为 `docker` 或者 `docker-engine`使用以下命令卸载旧版本
```bash
$ for pkg in docker \
docker-engine \
docker.io \
docker-doc \
docker-compose \
podman-docker \
containerd \
runc;
do
sudo apt remove $pkg;
done
$ sudo apt-get remove docker \
docker-engine \
docker.io
```
## 使用 APT 安装
@@ -38,9 +30,9 @@ done
由于 `apt` 源使用 HTTPS 以确保软件下载过程中不被篡改因此我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书
```bash
$ sudo apt update
$ sudo apt-get update
$ sudo apt install \
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
@@ -81,9 +73,9 @@ $ echo \
更新 apt 软件包缓存并安装 `docker-ce`
```bash
$ sudo apt update
$ sudo apt-get update
$ sudo apt install docker-ce docker-ce-cli containerd.io
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
```
## 使用脚本自动安装

View File

@@ -16,7 +16,7 @@
来自 Docker 官网的这张图片形象的展示了集群中管理节点与工作节点的关系
![](https://docs.docker.com/engine/swarm/images/swarm-diagram.webp)
![](https://docs.docker.com/engine/swarm/images/swarm-diagram.png)
## 服务和任务
@@ -32,4 +32,4 @@
来自 Docker 官网的这张图片形象的展示了容器任务服务的关系
![](https://docs.docker.com/engine/swarm/images/services-diagram.webp)
![](https://docs.docker.com/engine/swarm/images/services-diagram.png)