安装docker

  • 我这里使用的是yum install -y docker安装的docker
  • 主体账号下查看可用的docker hub, 镜像页面链接
  • 首先需要登录阿里云。再访问镜像页面链接。
  • 查看的链接:阿里镜像仓库
    在这里插入图片描述

一、拉取mysql镜像

安装容器

  • 安装容器前操作

    • 编写配置文件并生成它echo -e "[mysqld]\nlower_case_table_names=1" > /docker/data/mysql/config/custom.cnf
  • 生成Mysql容器****

    • 首先创建网络,如果存在则不用创建docker network create mini-web
    • 通过命令docker network ls检查网络
    • 查看正在运行的docker容器是否在使用的网络
      docker ps --format "table {{.Names}}\t{{.Ports}}\t{{.Networks}}"在这里插入图片描述
  • 等待一段时间大概10s钟通过命令docker exec -it mysql-container mysql -uroot -pbt***72 -e "SHOW VARIABLES LIKE 'lower_case_table_names';"查看配置是否生效。

  • 13306为宿主机映射的端口。

docker run -d -p **06:3306 --name mysql-container --network mini-web -v /docker/data/mysql/data:/var/lib/mysql -v /docker/data/mysql/log:/var/log/mysql -v /docker/data/mysql/config:/etc/mysql/conf.d -e MYSQL_CHARSET=utf8mb4 -e MYSQL_COLLATION=utf8mb4_0900_ai_ci -e MYSQL_ROOT_PASSWORD=**772 mysql:8.0
  • 登录mysql root用户
    docker exec -it mysql-container mysql -u root -p***772
  • 创建用户
CREATE USER 'ry_vue'@'%' IDENTIFIED BY '***_1234';
# 或 CREATE USER 'ry_vue'@'%' IDENTIFIED BY '***_1234' PASSWORD EXPIRE NEVER;
GRANT ALL PRIVILEGES ON *.* TO 'ry_vue'@'%' WITH GRANT OPTION;
flush privileges;

ry_vue用户下创建数据库

  • 先登录ry_vue用户
docker exec -it mysql-container mysql -u ry_vue -p***e_1234
# 或直接切换
SYSTEM mysql -u ry_vue -p
  • 切换后查看但前登录用户进行验证
select user();
  • 创建用户
CREATE DATABASE `ry_flowable_plus` ;
  • 重启mysql
docker restart <容器名称>
  • 修改密码永远不会过期
-- 设置密码永不过期
ALTER USER 'ry_vue'@'%' PASSWORD EXPIRE NEVER;
-- 或者使用
ALTER USER '用户名'@'主机名' PASSWORD EXPIRE DEFAULT;
flush privileges;
  • 进入容器docker exec -it mysql-container bash
  • 或者
# 查看容器日志
docker logs mysql-container

# 查看配置文件内容
docker exec -it mysql-container cat /etc/mysql/conf.d/custom.cnf

# 查看所有加载的配置
docker exec -it mysql-container mysql -uroot -pbt772 -e "SHOW VARIABLES;"

数据迁移

# docker环境:注意:-p 和密码之间不能有空格
docker exec mysql-container mysqldump -u root -psecret my_database > backup.sql
# 非docker环境
mysqldump -u root -p --databases ry_flowable_plus > backup.sql
# 若提示can't connect to local mysql server through socket '/var/lib/mysql/mysql.sock'
mysqldump -u root -p -h <ip> -P <port> --databases ry_flowable_plus > backup.sql
  • 导入docker exec -i mysql-container mysql -u ry_vue -pRy_vue_1234 ry_flowable_plus < backup.sql,3g左右的数据导入时间大概15分钟
  • 导入时文件上传需要在安全组设置为允许访问
    在这里插入图片描述

二、redis容器安装

docker run -p 16379:6379 --name redis --privileged=true --user root --network mini-web -v /docker/data/redis/config/redis.conf:/etc/redis/redis.conf -v /docker/data/redis/data:/data -d redis:6.0.16 redis-server /etc/redis/redis.conf --requirepass '123456'

三、minio的docker容器安装

  • 此处配置进行了优化。添加了request_max, pool_size, timeout,因第一次创建容器未添加导致桶数据访问失败。
  • 参考文章
docker run \
-p 9000:9000 \
-p 9001:9001 \
--network mini-web \
--name minio \
-d --restart=always \
-e "MINIO_ACCESS_KEY=minioadmin" \
-e "MINIO_SECRET_KEY=minioadmin" \
-e "MINIO_API_REQUESTS_MAX=1000" \
-e "MINIO_API_READ_TIMEOUT=300" \
-e "MINIO_API_REQUESTS_POOL_SIZE=100" \
-v /docker/data/minio/data:/data \
-v /docker/data/minio/config:/root/.minio \
 minio/minio server \
/data --console-address ":9001" -address ":9000"

四、minio安装

在这里插入图片描述

在这里插入图片描述

五、做nginx的安装(docker)

  • 检查Nginx进程(安装docker.nginx前)
# 检查 Nginx 进程是否在运行
ps aux | grep nginx

# 或者更精确的查询
ps aux | grep -E '(nginx|httpd)' | grep -v grep
  • 停止nginx
/usr/sbin/nginx -s stop

docker安装

  • 创建目录和文件(粘贴后在命令行执行)
mkdir -p /docker/data/nginx/conf && echo "user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;

events {
    worker_connections 1024;
}

http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;
    
    log_format main '\$remote_addr - \$remote_user [\$time_local] \"\$request\" '
                    '\$status \$body_bytes_sent \"\$http_referer\" '
                    '\"\$http_user_agent\" \"\$http_x_forwarded_for\"';
    
    access_log /var/log/nginx/access.log main;
    
    sendfile on;
    keepalive_timeout 65;
    
    include /etc/nginx/conf.d/*.conf;
}" > /docker/data/nginx/conf/nginx.conf
  • 安装docker容器
Alpine Linux 的特点
1. 极小的镜像体积
nginx:alpine: ~20MB 左右

nginx:latest (基于 Debian): ~130MB 左右

体积减少约 80%
docker run -d \
  -p 80:80 \
  -p 443:443 \
  --name nginx-container \
  --network mini-web \
  -v /docker/data/nginx/html:/usr/share/nginx/html \
  -v /docker/data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
  -v /docker/data/nginx/conf:/etc/nginx/conf.d \
  -v /docker/data/nginx/logs:/var/log/nginx \
  -v /docker/data/nginx/ssl:/etc/ssl/certs \
  --restart unless-stopped \
  nginx:alpine
  • 验证容器
# 检查容器状态
docker ps

# 查看容器日志
docker logs nginx-container

# 测试访问
curl http://localhost

# 进入容器检查配置
docker exec -it nginx-container nginx -t
docker exec -it nginx-container nginx -s reload

六、mysql 导入导出

1. 导出

# 复制表结构和数据
docker exec mysql-container mysqldump -u ry_vue -pTest <schema> quality_indicator_config quality_indicator_statistics  > core_0107.sql
# 安全稳定只复制数据
docker exec mysql-container mysqldump   -u ry_vue -p<密码>   --no-create-info   --single-transaction   --quick   --verbose   neuro   dim_imaging_item   dim_history_item   dim_symptom_item   dim_status_item   dim_diagnosis_item   dim_medresp_item   dim_phyexam_item   dim_treatment_item   dim_operation_item > base_data_safe_dump01.sql

2. 导入

docker exec -i mysql-container mysql -u ry_vue -pTest <新的schema> < neurocontrol_core_0107.sql


3. mysql centos 创建 docker 容器

  • 注意时区。若不配置环境变量,可能容器内部时间会少8小时
docker run -d \
  --name mysql \
  -p 3306:3306 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=Zcb***88 \
  -e MYSQL_CHARSET=utf8mb4 \
  -e MYSQL_COLLATION=utf8mb4_0900_ai_ci \
  -e LOWER_CASE_TABLE_NAMES=1 \
  -v /etc/localtime:/etc/localtime:ro \
  -v /data/soft/mysql/config:/etc/mysql/conf.d \
  -v /data/soft/mysql/data:/var/lib/mysql \
  -v /data/soft/mysql/log:/var/log/mysql \
  mysql:8.0.23

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐