Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
donknap committed Jan 3, 2025
1 parent 7883032 commit 4961f62
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 64 deletions.
34 changes: 5 additions & 29 deletions docs/zh-cn/manual/container/create-link.md
Original file line number Diff line number Diff line change
@@ -1,36 +1,12 @@
# 创建关联容器

> 关联容器是指创建容器时需要依赖其它容器
关联容器是指创建容器时需要依赖其它容器

这里通过创建 mysql 和 phpmyadmin 演示如何创建容器关联
### 关联容器

### 配置
在创建容器时,在【关联配置】中的【关联容器】选择需要关联的外部容器。

#### Mysql
### 容器内互联

创建时需要指定 MYSQL_ROOT_PASSWORD 环境变量,初始化数据库 root 密码,否则服务无法启动
关联容器后,可以配置目标容器的 hostname,也可以通过默认的 **容器标识.pod.dpanel.local** 进行互联

#### Phpmyadmin

创建时需要关联对应的 Mysql 容器,系统将会给每一个容器分配一个内部 Host,容器之间可通过此 Host 进行互相访问

创建 Phpmyadmin 容器时,需要将 PMA_HOST 环境变量指定为 Mysql 的内部 Host

### 网络

#### 默认网络

Docker 会给每一个容器创建一个默认的 bridge 网络。你也可以不关联容器,直接通过默认网络中配置的容器 Ip 进行互联。

但是并不推荐这样做,因为容器重启后,其 Ip 地址会发生变化。直接使用 Ip 可能会造成无法访问的问题。

#### 关联网络

DPanel 会将关联的容器放置到同一个网络中,将配置独立的 Host。

Host 命令规则为 **容器标识.pod.dpanel.local**


# 演示

<iframe src="//player.bilibili.com/player.html?isOutside=true&aid=112488916716288&bvid=BV1nfu6eNEsi&cid=500001555764866&p=1" scrolling="no" border="0" height="600" frameborder="no" framespacing="0" allowfullscreen="true"></iframe>
43 changes: 20 additions & 23 deletions docs/zh-cn/manual/container/create-option.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# 容器创建参数

### 基本配置
##### 绑定端口
#### 绑定端口

> -p 8080:80 --publish-all --network host
Expand All @@ -16,7 +16,7 @@
| 绑定全部端口 | | 生成随机端口映射容器内的全部端口到宿主机 |
| IpV6 | | 同时映射容器端口到 IpV6 |

##### 网络配置
#### 网络配置

> docker network create --driver bridge --subnet 192.168.100.0/24 --gateway 192.168.100.1 test \
> docker run ... --network test --ip 192.168.100.2 ...
Expand All @@ -25,19 +25,19 @@

### 关联配置

##### 关联容器
#### 关联容器

> --link {hostname}:目标关联容器
通过关联容器,可以在两个容器间通过 hostname 进行互联。

##### 关联网络
#### 关联网络

> --network 网络名称 --ip ip地址
指定创建容器时需要加入的网络。在 DPanel 系统中,即使指定容器关联网络时,面板也会将容器加入 bridge 网络

##### 关联宿主机网络
#### 关联宿主机网络

> --add-host=host.dpanel.local:host-gateway --add-host=my13.local:192.168.1.101
Expand All @@ -48,56 +48,53 @@

> -v testvolume:/home -v /home/test:/home/test
##### 默认存储

如果镜像内声明了【需要挂载的目录】。在创建容器时,如果不手动指定这些挂载目录。\
默认情况下,docker 会自动新建一个匿名存储卷来挂载目录。

如果镜像内声明了持久化的目录。在创建容器时,docker 会自动新建一个匿名存储卷来挂载目录。\
大量的匿名存储卷不仅会造成观感体验不好。而且在容器被销毁时,也无法判断当时这个存储卷是属于哪个容器。

基于以上的原因 DPanel 会根据【站点标识+目录名】来命名这些存储卷名称。\
如果你未手动的指定这些挂载目录, DPanel 会根据【站点标识+目录名】来命名这些存储卷名称。\
可以理解为,面板为了避免 docker 生成出来匿名存储卷,而定义了一个存储卷的命名规则。

如果你选择自己去挂这些目录,则需要将这些目录从【默认存储】中删除。

##### 自定义挂载或是存储卷

> 选择自定义挂载的目录,不需要在默认存储中配置。这两项配置二选一即可。
将宿主机文件或是目录挂载到容器内
如果你选择挂载这些目录,可以配置【存储卷】或是【宿主机文件或是目录】。\
区别在于存储卷会在创建容器时将容器内的数据同步至存储卷中,挂载目录则不会。

### 运行配置

##### command、entrypoint、user、工作目录
#### command、entrypoint、user、工作目录

> docker run ... --workdir /root --user root --entrypoint test.sh 镜像名 /bin/sh -c "tail -f"
指定容器的运行命令,为空时使用镜像内声明的值

### 资源配置

##### 日志
#### 日志

> --log-opt max-size=10m --log-opt max-file=3
指定容器内的日志驱动及日志切割大小

### Hook

##### 附加执行脚本
#### 附加执行脚本

配置在容器创建后,执行的脚本。脚本只能配置单行。

| 时机 | 脚本示例 | 描述 |
| --- | --- | --- |
| 容器创建后 | apk add php && touch index.html && php -S 0.0.0.0:80 | 在容器创建后,安装 php 包,在工作目录中生成 index.html 文件,启动 Http 服务。 |

##### 健康检查
#### 健康检查

> --health-cmd='curl -f http://localhost/' \
--health-interval=10s --health-timeout=5s --health-retries=3

| 脚本执行环境 | 脚本示例 | 描述 |
| --- | --- | --- |
| 在 Docker 环境中执行 | curl -f http://localhost:80 | docker 将请求容器内的80端口地址,测试是否可以访问 |
| 在容器内执行 | curl -f http://localhost:80 \|\| exit 1 | 在容器内的 shell 环境中执行命令,依赖容器内是否有 curl 命令 |
| 在容器内执行 | curl -f http://localhost:80 \|\| exit 1 | 在容器内的 shell 环境中执行命令,依赖容器内是否有 curl 命令 |

### 能力配置

> --cap-add NET_ADMIN
可以开启或是关闭容器的权限能力
23 changes: 11 additions & 12 deletions docs/zh-cn/manual/container/create.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,22 @@
# 创建单容器

> 单容器是指不需要关联其它容器可独立运行的应用。
这里以 Minio 为例,演示如何通过镜像创建一个应用容器。
单容器是指不需要关联其它容器可独立运行的应用。

### 配置

创建 Minio 时候,暴露 9000 和 9001 端口,并配置启动 cmd 命令为
以创建 minio 容器为例

```
server /data --console-address :9001
```
| 配置组 | 配置项 || 描述 |
| ------ | --- | --- | --- |
| 基本配置 | 容器标识 | minio | 创建的容器的名称 |
|基本配置| 镜像 | docker.1panel.live/minio/minio:latest | 使用【拉取镜像】按钮获取镜像 |
|基本配置| 绑定端口 | 9000 | 映射9000端口,为空为随机生成 |
|基本配置| 绑定端口 | 9001 | 映射9001端口,为空为随机生成 |
| 存储配置| 自定义挂载或是存储卷 | miniodata 或是 /home/miniodata | 指定挂载 /data 目录或是存储卷,为空为生成存储卷 |
| 运行配置 | Command | server /data --console-address :9001 | 配置启动参数 |

### 访问

使用 http://127.0.0.1:9001 进行访问

默认用户为 minioadmin / minioadmin

# 演示

<iframe src="//player.bilibili.com/player.html?isOutside=true&aid=112484158931712&bvid=BV1MfgcehEZy&cid=500001554797263&p=1" scrolling="no" border="0" height="600" frameborder="no" framespacing="0" allowfullscreen="true"></iframe>
默认用户为 minioadmin / minioadmin

0 comments on commit 4961f62

Please sign in to comment.