docker compose部署mysql8
一、配置docker镜像源
1.配置镜像源
Docker的配置文件通常是 /etc/docker/daemon.json 如果文件不存在,请创建它。
vim /etc/docker/daemon.json
然后粘贴以下内容
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.1ms.run",
"https://ccr.ccs.tencentyun.com",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.ccs.tencentyun.com"
]
}
2.重启Docker服务
为了让新的配置生效,必须重启Docker服务
#重新加载配置
sudo systemctl daemon-reload
#重启Docker服务
sudo systemctl restart docker
3.验证是否生效
docker info

通过拉取镜像,测试一下
#拉取hello-world镜像
docker pull hello-world
#查看镜像源列表
docker images
可以看到hello-world镜像拉取成功。可以通过docker rmi 镜像ID删除镜像
二、docker部署mysql8
1.创建目录结构
我的配置和目录统一放在/software目录下。可以根据实际情况更改主目录
#创建主目录
sudo mkdir -p /software/mysql8
#创建子目录(数据卷挂载data和conf目录)
sudo mkdir -p /software/mysql8/conf
sudo mkdir -p /software/mysql8/data
2.处理权限问题
mysql容器内的服务是以mysql用户(uid=999)运行的。为了让容器能够向宿主机的/software/mysql8/data目录写入数据,需要修改该目录的权限。
#将数据目录的所有者和所属组更改为999
sudo chown -R 999:999 /software/mysql8/data
3.创建docker-compose.yml文件
#进入主目录
cd /software/mysql8
#编辑docker-compose.yml文件
vim docker-compose.yml
粘贴以下内容。
version: '3.8'
services:
mysql8:
image: mysql:8.0
container_name: mysql8-server #容器名
environment:
MYSQL_ROOT_PASSWORD: "root" #root用户密码
TZ: "Asia/Shanghai"
ports:
- "3306:3306" #宿主机端口:容器内端口
volumes:
- ./conf/my.cnf:/etc/mysql/conf.d/custom.cnf
- ./data:/var/lib/mysql
restart: always
networks:
- my-network
networks:
my-network:
driver: bridge
在当前目录通过docker compose up -d命令启动容器,如下所示。
#进入docker-compose.yml所在目录
cd /software/mysql8
#启动容器
docker compose up -d
通过docker ps命令可以看到容器成功启动
连接成功
4.通过docker compose命令快捷管理容器
使用docker compose命令时,一定要在docker-compose.yml同级目录
docker compose up -d启动容器docker compose stop停止容器docker compose restart重启容器docker compose down停止并移出容器docker compose logs查看容器日志docker compose ps列出compose应用中的各个容器docker compose rm删除已停止的compose应用,它会删除容器和网络
评论