Files
doc/docs/nas-skill/2-docker.md
2023-12-25 21:55:37 +08:00

155 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
sidebar_position: 2
---
# docker使用
### 科普名词
- 平台: docker程序就是一个类似平台一样的程序为了方便理解你可以把它比喻为类虚拟机。
- 镜像技术人员构建的各种包含了特殊环境的可以在docker上运行的独立子系统包。
- 容器:拉取镜像运行后,封装在一个指定的文件夹位置里的子进程。
海纳思系统内置了一键安装 docker 程序的脚本;
直接一键命令即可安装包含docker-compose
在终端输入这个命令即可 ```install-docker.sh```
## 安装docker平台程序
```bash
install-docker.sh
```
![](./img/install-docker.png)
```consle
root@hinas:~# docker version # 这句命令是获取 docker 平台的版本号
Client: Docker Engine - Community
Version: 24.0.7
API version: 1.43
Go version: go1.20.10
Git commit: afdd53b
Built: Thu Oct 26 09:08:47 2023
OS/Arch: linux/arm
Context: default
Server: Docker Engine - Community
Engine:
Version: 24.0.7
API version: 1.43 (minimum version 1.12)
Go version: go1.20.10
Git commit: 311b9ff
Built: Thu Oct 26 09:08:47 2023
OS/Arch: linux/arm
Experimental: false
containerd:
Version: 1.6.26
GitCommit: 3dd1e886e55dd695541fdcd67420c2888645a495
runc:
Version: 1.1.10
GitCommit: v1.1.10-0-g18a0cb0
docker-init:
Version: 0.19.0
GitCommit: de40ad0
```
## 拉取 docker 各种丰富的镜像
- 拉取镜像
```bash
docker pull xxx/xxx
```
- 运行容器
```bash
docker run xxx/xxx --options
```
- 列出运行中的容器
```bash
docker ps -a
```
会列出所有运行中的容器名称和 ```id```
![](./img/containerid.jpg)
- 停止运行中的容器
```bash
docker stop [ id 的前4位数]
```
- 删除已停止的容器
```bash
docker rm [ id的前4位数字]
```
- 列出所有镜像
```bash
docker images
```
- 删除已停止的镜像
```bash
docker rmi [镜像id的前4位数]
```
## 将 docker 镜像安装到其它磁盘位置
如果你的系统空间不足可以通过修改docker平台的配置文件达到将镜像拉取并安装到其它磁盘位置。
:::caution
注意:这个配置修改,必须在安装 docker 平台后,拉取 docker 镜像前!
注意:请确保你的磁盘稳定在线,否则将会程序错误无法访问 docker .
:::
请参考以下命令修改配置文件`/lib/systemd/system/docker.service`
```html
systemctl stop docker # 停止 Docker 服务
mkdir -p /mnt/sda1/docker # 建立文件夹
chmod 777 -R /mnt/sda1/docker # 赋予权限
vi /lib/systemd/system/docker.service # 编辑配置文件
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
插上一句 --data-root /mnt/sda1/docker 变为如下:
ExecStart=/usr/bin/dockerd --data-root /mnt/sda1/docker -H fd:// --containerd=/run/containerd/containerd.sock
systemctl daemon-reload # 更新启动组件
systemctl start docker # 启动 docker 服务
```
参考图例:
![](./img/docker-root.jpg)
修改完毕,重启服务后,你再执行拉取的镜像和运行的容器,就会到你指定的磁盘了。
## 扩展
海纳思系统内置了几个一键安装的脚本,非常便利。推荐需要时选择。
```bash
install-portainer.sh #中文容器管理面板
install-qinglong.sh #青龙面板
install-jellyfin.sh #电影削刮器
install-homeassistant.sh #智能家居
install-teslamate1.sh #特斯拉远控系统
```