安装docker
# 安装Docker-CE
yum install -y yum-utils device-mapper-persistent-data lvm2
# 增加最新版本的Docker安装仓库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 安装Docker-CE版本
sudo yum install -y docker-ce docker-ce-cli containerd.io
# 启动docker
sudo systemctl enable docker
# 允许开机启动
sudo systemctl start docker
下载mysql镜像文件
# 查看所需镜像版本,这里是查看mysql 5.6版本
# 默认会下载5.6里面最新的版本
docker search mysql:5.6
# 下载对应版本的mysql,是用mysql:版本号
docker pull mysql:5.6
配置文件
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
default-storage-engine=INNODB
collation-server=utf8_general_ci
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
log-error = /var/log/mysql/error.log
[mysql]
default-character-set=utf8
存放路径,可以自行修改,修改之后记得更改启动容器的路径参数
/home/docker-conf/mysql/cnf/my.cnf
启动容器命令
docker run -it --name=mysql # 如果更改了存放路径,记得修改下面的配置参数 -v /home/docker-conf/mysql/cnf/:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=123456 # --ip 127.0.0.1 -p 3306:3306 -d mysql:5.6 /bin/bash
参数解读
? --name 自定义名字,两个-
? -v 文件挂载目录
? :
前面的是宿主机的目录,后面则是容器的目录
? -e 设置mysql的初始密码,不过貌似没什么用
? -p 端口映射
? :
前面的是映射到宿主机的端口,后面则是容器的端口
? 比如mysql默认端口是3306,意思就是把mysql容器的3306端口映射到宿主机的3306端口,
? 可以通过访问宿主机的3306端口访问到mysql容器
? -d 表示后台运行
? 后面的则是镜像名和版本号
进入容器内部
docker attach mysql
# 或者
docker exec -it 容器名或者container ID
执行mysql命令
usermod -d /var/lib/mysql/ mysql
启动mysql
service mysql start
使用mysql
mysql -uroot -p
提示输入密码。直接回车.
因为container ID是通过hash算法来实现的,所以正常情况下每个容器的ID都是唯一的,为了方便操作,取前几位就可以了,只要取的值和其他容器的相同个数的没有重复的即可
# 比如
container ID name
a12345 mysql01
a11234 centos7.6
b12345 mysql02
b23456 centos6.8
c23456 redis
# 可以这么来取
docker start a12
# 也可以这样
docker start mysql01
# 更简单的
docker start c # 因为c开头的就一个
查看正在运行的容器
docker ps
查看所有容器(包括没有运行的)
docker ps -a
启动容器
docker start 容器名或container ID
停止容器
docker stop 容器名或container ID
删除容器
docker rm container ID
# 注意:运行的容器一定要先stop,再rm
查看镜像文件
docker images
原文:https://www.cnblogs.com/liuhuan086/p/11229786.html