logo 范 · 拾光录
网址收集 关于作者 Github Gitee
杂文随笔4
Hexo博客:基础使用Hexo博客:Next主题Hexo博客:Next进阶使用Hexo博客:Next高级配置
前端编程3
前端基础知识16
UniApp15
Vue框架19
Java编程7
Java基础知识14
SpringBoot31
SpringMVC14
MyBatis8
SpringCloud15
RocketMQ1
MyCat1
数据库4
MySQL6
Redis7
MongoDB10
H21
Java技术栈4
知识整理分布式锁的实现方案MySQL事务MySQL的锁
软件工具箱14
IDEAGitMavenGradleNginx安装Nginx配置JMeter压测OllamaPicGoRustFSVSCodeDockerObsidianObs录制
Linux知识11
树莓派安装及使用ArchLinux:常用软件ArchLinux:基础系统安装ArchLinux:深度优化ArchLInux:图形化界面安装ArchLinux:Nirifrp内网穿透Jar启动脚本Linux常用命令VirtualBox安装CentOSVirtualBox安装Ubuntu
Python编程6
Python基础知识Python语法yolo目标检测OpenCV的使用及树莓派平台condauv
创意设计2
Blender:入门知识UI设计基础知识
AI相关9
Claude CodeHermes AgentOpenAI基本使用OpenAI工具调用OpenAI记忆管理OpenAI推理执行OpenAI开发框架Langchainllama.cpp

介绍

Docker是一个开源的容器化平台,它让你能把应用程序及其所有依赖(代码、运行环境、配置)打包成一个“标准集装箱”,从而在任何装有Docker的服务器上无缝运行

解决什么实际问题

官网

https://www.docker.com/

CentOS安装

yum install docker

调整国内镜像源,编辑/etc/docker/daemon.json

{
  "registry-mirrors": ["https://32xw0apq.mirror.aliyuncs.com"]
}

ubuntu安装

# 1. 更新软件包索引
sudo apt update

# 2. 安装 Docker(Ubuntu 官方维护的版本)
sudo apt install -y docker.io

# 3. 将用户加入 docker 组(避免 sudo)
sudo usermod -aG docker $USER
newgrp docker  # 或重新登录终端

# 4. 验证安装
docker --version
sudo systemctl start docker
sudo docker run hello-world

镜像下载地址

官方镜像下载地址

查看镜像:docker images

安装 docker-compose 插件

# 1. 安装 docker-compose-plugin
apt update
apt install docker-compose-plugin -y

# 2. 验证安装
docker compose version

# 3. 使用命令(注意是空格,不是横杠)
docker compose up -d

容器操作

# 镜像查看
docker images

# 停止
docker stop id
# 查看所有容器(已停止)
docker ps -as
# 启动
docker start id
# 删除
docker rm -f name

检查容器是否正常运行
docker-compose ps

清理孤儿容器
docker-compose down --remove-orphans

配置加速

创建 Docker 配置文件

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://dockerproxy.com",
    "https://docker.mirrors.ustc.edu.cn",
    "https://hub-mirror.c.163.com"
  ]
}
EOF

重启 Docker
sudo systemctl restart docker

测试
sudo docker run hello-world

MySQL安装

MySQL镜像地址

docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

注意:实际生产环境不建议使用默认端口

使用docker ps看已安装镜像

Redis安装

Redis镜像地址

docker pull redis
docker run --name redis -p 6379:6379 -d redis --requirepass 123456

注意:实际生产环境不建议使用默认端口

Mongo安装

docker run --name mongo -p 27017:27017 -d mongo --auth

设置密码

# 进入容器,打开mongo,admin身份进入
docker exec -it mongo mongo admin
# 授权
db.createUser({user:'admin',pwd:'123456',roles:[{role:'userAdminAnyDatabase',db:'admin'}]});

Nacos服务端安装

nacos镜像地址

docker run --name nacos-quick -e MODE=standalone -p 8849:8848 -d nacos/nacos-server:2.0.2

访问ip:端口/nacos

Sentinel-Dashboard

Sentinel-Dashboard镜像地址

Yapi

启动一个mongo

docker run -d --name mongo-yapi mongo

初始化 Yapi 数据库索引及管理员账号

docker run -it --rm \
  --link mongo-yapi:mongo \
  --entrypoint npm \
  --workdir /api/vendors \
  registry.cn-hangzhou.aliyuncs.com/anoy/yapi \
  run install-server

启动 Yapi 服务

docker run -d \
  --name yapi \
  --link mongo-yapi:mongo \
  --workdir /api/vendors \
  -p 3000:3000 \
  registry.cn-hangzhou.aliyuncs.com/anoy/yapi \
  server/app.js

访问http://localhost:3000,登录账号admin@admin.com,密码ymfe.org

arch配置代理

/etc/docker/daemon.json

{
        "proxies": {
                "http-proxy": "http://127.0.0.1:7890",
                "https-proxy": "http://127.0.0.1:7890"
        }
}

打包迁移到其他服务器

在源服务器上保存所有CompreFace相关的Docker镜像
sudo docker save -o compreface-fe.tar exadel/compreface-fe:1.2.0
sudo docker save -o compreface-admin.tar exadel/compreface-admin:1.2.0
sudo docker save -o compreface-api.tar exadel/compreface-api:1.2.0
sudo docker save -o compreface-postgres-db.tar exadel/compreface-postgres-db:1.2.0
sudo docker save -o compreface-core.tar exadel/compreface-core:1.2.0

将生成的.tar文件传输到目标服务器
scp compreface-*.tar user@new-server:/path/to/destination/

在目标服务器上加载这些Docker镜像
sudo docker load -i compreface-fe.tar
sudo docker load -i compreface-admin.tar
sudo docker load -i compreface-api.tar
sudo docker load -i compreface-postgres-db.tar
sudo docker load -i compreface-core.tar

在新服务器上
docker run
或
sudo docker-compose up -d

docker-compose.yml

version: '3'

services:
  compreface-postgres-db:
    image: exadel/compreface-postgres-db:1.2.0
    container_name: compreface-postgres-db
    ports:
      - "5432:5432"

  compreface-core:
    image: exadel/compreface-core:1.2.0
    container_name: compreface-core
    depends_on:
      - compreface-postgres-db
    ports:
      - "3000:3000"

  compreface-api:
    image: exadel/compreface-api:1.2.0
    container_name: compreface-api
    depends_on:
      - compreface-core
    environment:
      - API_JAVA_OPTS=-Xmx2g

  compreface-admin:
    image: exadel/compreface-admin:1.2.0
    container_name: compreface-admin
    depends_on:
      - compreface-core
    environment:
      - ADMIN_JAVA_OPTS=-Xmx1g

  compreface-ui:
    image: exadel/compreface-fe:1.2.0
    container_name: compreface-ui
    ports:
      - "8000:80"
    depends_on:
      - compreface-api
      - compreface-admin

MySQL

docker run -d \
  --name mysql-8.4 \
  --restart=always \
  -p 3306:3306 \
  -v /app/mysql8.4/data:/var/lib/mysql \
  -v /app/mysql8.4/conf:/etc/mysql/conf.d \
  -v /app/mysql8.4/logs:/var/log/mysql \
  -e MYSQL_ROOT_PASSWORD=123456 \
  mysql:8.4.10 \
  --character-set-server=utf8mb4 \
  --collation-server=utf8mb4_unicode_ci

# 进入 MySQL
docker exec -it mysql-8.4 mysql -uroot -p

# 创建远程访问用户
CREATE USER 'appuser'@'%' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'appuser'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
介绍
解决什么实际问题
官网
CentOS安装
ubuntu安装
镜像下载地址
安装 docker-compose 插件
容器操作
配置加速
MySQL安装
Redis安装
Mongo安装
Nacos服务端安装
Sentinel-Dashboard
Yapi
arch配置代理
打包迁移到其他服务器
MySQL