1. Docker

  • 定义:Docker 是一个开源的容器化平台,用于构建、运行和管理容器。

  • 功能

    • 创建容器镜像(通过 Dockerfile)

    • 运行单个容器

    • 管理容器生命周期(启动、停止、删除等)

    • 管理镜像

    • 管理存储卷和网络

  • 使用场景:适用于单个容器的应用,或者需要手动管理多个容器的场景。

  • 镜像与容器的关系

    • 镜像(Image):容器的静态模板,包含了应用程序运行所需的所有依赖和文件。镜像是不可变的。

    • 容器(Container):镜像的一个运行实例,具有自己的文件系统、进程、网络等,且是动态的。容器从镜像启动,并在运行时保持可变。

# 卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc
​
​
# 更新包索引
sudo apt update
​
# 安装依赖包
sudo apt install -y ca-certificates curl gnupg lsb-release
​
# 添加阿里云的Docker镜像GPG密钥(使用国内镜像,避免网络问题)
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
​
# 添加阿里云的Docker镜像仓库
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
​
​
# 安装Docker引擎
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin
​
# 验证安装
sudo docker --version

2.安装Docker Compose V2

Docker Compose

  • 定义:Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。

  • 功能

    • 使用 YAML 文件(通常为 docker-compose.yml)来配置应用程序的服务、网络和卷。

    • 通过一个命令(docker-compose up)启动多个容器。

    • 管理多个容器的生命周期(启动、停止、重建等)。

  • 使用场景:适用于需要多个容器(如 Web 服务器、数据库、缓存等)协同工作的应用程序。

关系比喻

  • Docker 像是单个集装箱的操作工具,而 Docker Compose 像是管理多个集装箱(可能属于同一艘船)的编排工具。

  • 你可以只用 Docker 来运行多个容器,但需要手动管理它们之间的网络、依赖等。而 Docker Compose 通过一个配置文件自动化这个过程。

协作方式

  • 你仍然使用 Docker 来构建镜像,但使用 Docker Compose 来定义哪些镜像需要运行,以及它们如何交互。

  • Docker Compose 调用 Docker API 来创建和管理容器,因此它依赖于 Docker 引擎。

# 安装Docker Compose插件(Docker Compose V2)
sudo apt update
sudo apt install -y docker-compose-plugin
​
# 验证安装
docker compose version

3. Docker(基础工具)

主要功能

  1. 容器镜像管理

    docker build      # 从Dockerfile构建镜像
    docker pull       # 拉取镜像
    docker push       # 推送镜像
    docker images     # 查看镜像列表

  2. 容器生命周期管理

    bash

    docker run        # 运行容器
    docker stop       # 停止容器
    docker rm         # 删除容器
    docker ps         # 查看容器状态

  3. 网络和存储

    docker network    # 管理网络
    docker volume     # 管理存储卷

典型使用示例

# 运行一个Nginx容器
docker run -d --name web -p 80:80 nginx:latest
​
# 运行一个数据库容器
docker run -d --name db -e MYSQL_ROOT_PASSWORD=secret mysql:8.0

4. 配置镜像加速(针对国内用户)

bash

# 创建或编辑Docker配置文件,alyuncs.com是阿里云自己的key
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
        "https://bwf6zbad.mirror.aliyuncs.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://hub-mirror.c.163.com",
        "https://mirror.baidubce.com",
        "https://docker.xuanyuan.me",
        "https://docker.1ms.run"
  ]
}
EOF
​
# 重启Docker服务
sudo systemctl daemon-reload
sudo systemctl restart docker

5. Docker 常用命令

Docker 容器使用 | 菜鸟教程

查看镜像:

docker images
# 按照格式
docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.ID}}\t{{.Size}}"
命令 功能 示例
docker run 启动一个新的容器并运行命令 docker run -d ubuntu
docker ps 列出当前正在运行的容器 docker ps
docker ps -a 列出所有容器(包括已停止的容器) docker ps -a
docker build 使用 Dockerfile 构建镜像 docker build -t my-image .
docker images 列出本地存储的所有镜像 docker images
docker pull 从 Docker 仓库拉取镜像 docker pull ubuntu
docker push 将镜像推送到 Docker 仓库 docker push my-image
docker exec 在运行的容器中执行命令 docker exec -it container_name bash
docker sto/p 停止一个或多个容器 docker stop container_name
docker start 启动已停止的容器 docker start container_name
docker restart 重启一个容器 docker restart container_name
docker rm 删除一个或多个容器 docker rm container_name
docker rmi 删除一个或多个镜像 docker rmi my-image
docker logs 查看容器的日志 docker logs container_name
docker inspect 获取容器或镜像的详细信息 docker inspect container_name
==docker exec -it== ==进入容器的交互式终端== ==docker exec -it container_name /bin/bash==
docker network ls 列出所有 Docker 网络 docker network ls
docker volume ls 列出所有 Docker 卷 docker volume ls
docker-compose up 启动多容器应用(从 docker-compose.yml 文件) docker-compose up
docker-compose down 停止并删除由 docker-compose 启动的容器、网络等 docker-compose down
docker info 显示 Docker 系统的详细信息 docker info
docker version 显示 Docker 客户端和守护进程的版本信息 docker version
docker stats 显示容器的实时资源使用情况 docker stats
docker login 登录 Docker 仓库 docker login
docker logout 登出 Docker 仓库 docker logout

常用选项说明:

  • -d:后台运行容器,例如 docker run -d ubuntu

  • -it:以交互式终端运行容器,例如 docker exec -it container_name bash

  • -t:为镜像指定标签,例如 docker build -t my-image .

5.1 参看可用版本

docker search <镜像名称>

5.2 重命名镜像

# 列出所有镜像,找到要重命名的镜像 ID
docker images
# 使用 docker tag 重命名镜像
docker tag efeb4214cfc4 sword2000/ubuntu1604-arm-qt:1.0
# 删除旧的镜像名称
docker rmi sword2000/unbuntu1604-arm-qt:1.0
# 再次列出所有镜像,确认重命名成功
docker images

6. 常用Linux(Ubuntu)命令

查看磁盘容量

df -h

查看端口占用

netstat -tunlp | grep 端口号
其中,参数解释如下:
​
-t 表示仅显示TCP相关选项
​
-u 表示仅显示UDP相关选项
​
-n 表示以数字形式显示地址和端口号
​
-l 表示仅列出处于监听状态的服务
​
-p 表示显示监听端口的程序名称和进程ID

查看文件列表

# 查看隐藏文件
ls -a

关闭占用端口的进程

kill -9 PID

其中,PID是占用端口的进程ID,可以通过lsofnetstat命令查找到

7. ubuntu安装anaconda

  1. 下载Anaconda安装脚本

  2. 安装到固定位置

# 使用 -p 参数指定安装路径
bash Anaconda3-2024.02-1-Linux-x86_64.sh -p /your/custom/path/anaconda3 -b
​
# 参数说明:
# -p: 指定安装路径
# -b: 批量模式,无需交互式确认
# 如果希望每次打开终端自动进入 Anaconda 的 base 环境,可执行
conda config --set auto_activate_base true

若出现 conda: command not found,需将 Anaconda 路径加入 ~/.bashrc

echo 'export PATH="$HOME/anaconda3/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

8. ubuntu 安装git

一般情况ubuntu内置git,如果想clone仓库,需要设置:

git config --global user.name "huang"
git config --global user.email "huangzhiyu2004@163.com"
#clone时一般不能连接,需要把ubuntu的
# 切换到.ssh
cd ~/.ssh
# 编辑id_rsa.pub
vim id_rsa.pub
# 将公钥复制,并添加到github的ssh key中即可

9. ubuntu安装dify

快速启动dify

正常情况是:

cd docker
cp .env.example .env
docker compose up -d

如果上面方法不行,需要重新单独拉取,

1.清除原有镜像

# 停止所有容器
docker compose down
​
# 清理悬空镜像和缓存
docker system prune -a
# 或者只删除特定损坏的镜像
docker rmi $(docker images | grep "none" | awk '{print $3}')

2. 重新安装

截止今天2026年2月10日:images,可以通过docker拉取下列镜像,修改docker-compose.yaml

IMAGE ID DISK USAGE CONTENT SIZE EXTRA busybox:stable-glib b30d5558be99 6.61MB 2.21MB U langgenius/dify-api:latest c02ea691dd96 3.68GB 847MB U langgenius/dify-plugin-daemon:0.5.3-local 0bf773413570 2.14GB 556MB U langgenius/dify-sandbox:latest 4e65e8a351a2 825MB 189MB U langgenius/dify-web:latest 843c0b7d71b4 565MB 126MB U nginx:1.21 2bcabc23b454 213MB 56.7MB U postgres:latest 1090bc3a8ccf 649MB 168MB U redis:latest c22af04bb576 205MB 55.4MB U semitechnologies/weaviate:latest 0833ece79595 269MB 82.7MB U

根据上面的信息,修改docker-compose.yaml中镜像位置,然后运行:

docker compose up -d

利用vim可以通过/进行搜索,修改镜像成以上内容

3.停止dify和重启

# stop
docker compose down
# resume
docker compose up -d

4. 访问dify

# localhost 
http://localhost/install

5. 出错,数据库迁移

docker compose run --rm api flask db upgrade

10. vim 命令

1. 模式切换

Vim 有多个模式,最常用的是:

  • 正常模式(启动时的默认模式)

  • 插入模式(编辑文本)

  • 可视模式(选择文本)

  • 命令行模式(执行命令)

按键 作用
i 在光标前进入插入模式
I 在行首进入插入模式
a 在光标后进入插入模式
A 在行尾进入插入模式
o 在当前行下方新开一行并进入插入模式
O 在当前行上方新开一行并进入插入模式
Esc 返回正常模式
v 进入可视模式(按字符选择)
V 进入可视行模式(按行选择)
Ctrl+v 进入可视块模式(选择矩形区域)
: 进入命令行模式

2. 移动光标(正常模式下)

按键 作用
h 左移一个字符
j 下移一行
k 上移一行
l 右移一个字符
w 跳到下一个单词开头
b 跳到当前单词/上一个单词开头
e 跳到当前单词/下一个单词结尾
0 跳到行首
$ 跳到行尾
^ 跳到行首第一个非空白字符
gg 跳到文件第一行
G 跳到文件最后一行
:n 跳到第 n 行(n 为数字)
Ctrl+f 向下翻一页
Ctrl+b 向上翻一页
Ctrl+d 向下翻半页
Ctrl+u 向上翻半页

3. 编辑操作

按键 作用
x 删除光标所在字符
dd 删除当前行
dw 删除从光标到单词结尾
d$ 删除从光标到行尾
d0 删除从光标到行首
yy 复制当前行(整行)
yw 复制从光标到单词结尾
p 在光标后粘贴
P 在光标前粘贴
u 撤销上一次操作
Ctrl+r 重做(反撤销)
. 重复上一次修改操作

4. 搜索与替换

按键 作用
/pattern 向下搜索 pattern
?pattern 向上搜索 pattern
n 重复上一次搜索(同方向)
N 重复上一次搜索(反方向)
:s/old/new 将当前行第一个 old 替换为 new
:s/old/new/g 将当前行所有 old 替换为 new
:%s/old/new/g 将整个文件所有 old 替换为 new
:%s/old/new/gc 替换前逐个确认

5. 保存与退出

按键 作用
:w 保存文件
:w filename 另存为 filename
:q 退出(未修改时)
:q! 强制退出,不保存修改
:wq:x 保存并退出
ZZ 保存并退出(正常模式下直接按)
ZQ 不保存退出

6. 其他实用命令

按键 作用
J 合并下一行到当前行(在行尾加空格连接)
>> 向右缩进当前行
<< 向左缩进当前行
= 自动缩进选中的行(需先进入可视模式选择)
Ctrl+g 显示当前文件名和行号
:set nu 显示行号
:set nonu 隐藏行号
:help 打开帮助文档
:help command 查看具体命令的帮助

7. 常用组合示例

  • 2dd 删除 2 行

  • 3yy 复制 3 行

  • d2w 删除 2 个单词

  • c$ 修改从光标到行尾(删除并进入插入模式)

  • r<char> 替换当前光标字符为 <char>

更多推荐