配置 Docker 环境(新)
原创2025/4/1大约 3 分钟
配置 Docker 环境(新)
时间:2025-03-31 23:57:49
环境:TencentOS Server 4 for x86_64
1、配置 Docker
(1)安装部署
# 安装
yum install -y docker-ce
# 自启
systemctl enable docker
# 启动
systemctl start docker
# 状态
systemctl status docker(2)配置镜像源
注意:当前多个国内镜像源已失效,以下示例中的腾讯云镜像源仅支持内网访问。
# 注意查看此文件中是否有内容,或使用>>则不覆盖
sudo su
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["https://mirror.ccs.tencentyun.com"],
"log-opts": {
"max-size": "1024m",
"max-file": "1"
}
}
EOF
# 重启使其生效
systemctl restart docker(3)授权用户(可选)
# 创建用户组(可能已存在)
groupadd docker
# 加入指定用户
usermod -aG docker [username]
# 重启 Docker(不知道此步骤是否必须),用户必须重新登录后生效
systemctl restart docker2、配置 Nginx
(1)拉取镜像
docker pull nginx:1.27.4(2)准备映射文件及目录
# 启动临时容器
docker run --name nginx -p 80:80 -p 443:443 -d nginx:1.27.4
# 创建日志目录
mkdir -p /usr/local/program/nginx/logs
# 创建证书目录,非必须,若要求配置 https 会用到
mkdir -p /usr/local/program/nginx/certificate
# 将容器内的相应目录复制到宿主机
docker cp nginx:/usr/share/nginx/html /usr/local/program/nginx
docker cp nginx:/etc/nginx/conf.d /usr/local/program/nginx
docker cp nginx:/etc/nginx/nginx.conf /usr/local/program/nginx(3)启动正式容器
#!/bin/bash
cd /usr/local/program/nginx
program_path=`pwd`
program_name=${program_path##*/}
docker rm -f ${program_name}
docker run --name ${program_name} --restart always --net=host --memory 1g \
-v /etc/localtime:/etc/localtime \
-v ${program_path}/certificate:/etc/nginx/certificate \
-v ${program_path}/conf.d:/etc/nginx/conf.d \
-v ${program_path}/html:/usr/share/nginx/html \
-v ${program_path}/logs:/var/log/nginx \
-v ${program_path}/nginx.conf:/etc/nginx/nginx.conf \
-d nginx:1.27.43、配置 Redis
(1)拉取镜像
docker pull redis:6.2.17(2)准备映射文件及目录
# 创建相关目录
mkdir -p /usr/local/program/redis/data
cd /usr/local/program/redis为了保证配置文件与版本的匹配性,建议去 http://download.redis.io/releases 下载对应版本的包,找到 redis.conf 文件,手动上传到 redis 目录下。
在上传之前可以修改一些常用配置,修改内容如下:
// 解除只能为本地连接限制
# bind 127.0.0.1 -::1
bind * -::*
// 关闭保护模式,保护模式下限制为本地访问
# protected-mode yes
protected-mode no
// 设置一个密码(强烈推荐)
# requirepass foobared
requirepass 这是你的密码
// 设置内存限制(可选)
maxmemory 512MB(3)启动正式容器
#!/bin/bash
cd /usr/local/program/redis
program_path=`pwd`
program_name=${program_path##*/}
docker rm -f ${program_name}
docker run --name ${program_name} --restart always --memory 1g \
-v /etc/localtime:/etc/localtime \
-v ${program_path}/redis.conf:/etc/redis/redis.conf \
-v ${program_path}/data:/data \
-p 56379:6379 -d redis:6.2.17 redis-server /etc/redis/redis.conf4、配置 MySQL
(1)拉取镜像
docker pull mysql:8.0.41(2)准备映射文件及目录
# 启动临时容器
docker run -d --name mysql8 -p 53308:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.41
# 将容器内的相应目录复制到宿主机
mkdir -p /usr/local/program/mysql8
docker cp mysql8:/etc/my.cnf /usr/local/program/mysql8/
docker cp mysql8:/var/lib/mysql /usr/local/program/mysql8
mv /usr/local/program/mysql8/mysql /usr/local/program/mysql8/data(3)启动正式容器
#!/bin/bash
cd /usr/local/program/mysql8
program_path=`pwd`
program_name=${program_path##*/}
docker rm -f ${program_name}
docker run --name ${program_name} --restart always --memory 1g \
-v /etc/localtime:/etc/localtime \
-v ${program_path}/my.cnf:/etc/my.cnf \
-v ${program_path}/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-p 53308:3306 -d mysql:8.0.41(4)配置 MySQL
修改 /usr/local/program/mysql8/my.cnf,改动如下:
# 在[client]组中添加:
default-character-set=utf8mb4
# 在[mysqld]组中添加:
character-set-server=utf8mb4
# 重启服务
docker restart mysql8
# 进入容器
docker exec -it mysql8 bash
# 进入服务
mysql -uroot -p123456
# 查看编码是否正确
show variables like '%character%';
# 查看所有用户列表
select user,host from mysql.user;
# 修改密码
ALTER USER 'root'@'%' IDENTIFIED WITH 'mysql_native_password' BY '你的密码';
# 授权远程
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
# 刷新权限
FLUSH PRIVILEGES;
