linux下docker安装及配置镜像(minio,mysql,redis)
docker hub。
·
安装docker
- 我这里使用的是
yum install -y docker安装的docker - 主体账号下查看可用的
docker hub, 镜像页面链接 - 首先需要登录阿里云。再访问镜像页面链接。
- 查看的链接:阿里镜像仓库

一、拉取mysql镜像
- 启动、检查mysql状态
systemctl status dockersystemctl start/restart/stop docker - ubuntu使用apt安装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
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)