方式一
Ⅰ:拉取镜像
docker pull mysql:8.0
Ⅱ:创建数据卷
docker volume create learn-pig-mysql-data
[root@iZbp16q6j4wh5685xon9unZ ~]# docker volume create learn-pig-mysql-data
learn-pig-mysql-data
----------------------------------------------------------------------------
[root@iZbp16q6j4wh5685xon9unZ ~]# docker volume ls
DRIVER VOLUME NAME
local 173d1666ae26aaadd9006e6d8f97e0e338b299d27404e0c51778af09938e14b3
local learn-pig-mysql-data
----------------------------------------------------------------------------
[root@iZbp16q6j4wh5685xon9unZ ~]# docker inspect learn-pig-mysql-data
[
{
"CreatedAt": "2021-11-25T09:14:21+08:00",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/learn-pig-mysql-data/_data",
"Name": "learn-pig-mysql-data",
"Options": {},
"Scope": "local"
}
]
Ⅲ:查看镜像中容器内的Volumes
docker inspect mysql:8.0
[root@iZbp16q6j4wh5685xon9unZ ~]# docker inspect mysql:8.0
[
......
"Volumes": { "/var/lib/mysql": {} },
......
]
Ⅳ:运行镜像,并挂载目录到宿主机上
docker run -d \
--restart=always \
-v learn-pig-mysql-data:/var/lib/mysql \
-p 3306:3306 \
--name pig-mysql \
-e MYSQL_ROOT_PASSWORD="root" \
mysql:8.0
--restart=always是设置容器开启启动-v是设置容器的数据目录,挂载到宿主机的目录上。这样即使容器删除了,数据还是在宿主机上保存着。注
方式二
使用docker-compose.yml文件方式部署msyq
version: '3'
services:
mysql:
image: mysql:latest
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: "root"
volumes:
- 'mysql-data:/data'
volumes:
mysql-data:
driver: local
