应用背景:在Docker容器中部署MySQL,并通过外部mysql客户端操作MySQL Server
Docker中部署MySQL服务时有下述几个关键点:
1、容器内的网络服务和外部机器不能直接通信
2、外部机器和宿主机可以直接通信
3、宿主机与容器可以直接通信
4、当容器中的网络服务需要被外部机器访问时,可以将容器中提供服务的端口映射到宿主机的端口上,外部机器访问宿主机的该端口,从而间接访问容器的服务,这种操作称之为“端口映射”
以下为Docker部署MySQL的操作步骤:
第一步:搜索mysql镜像
docker search mysql
第二步:拉取mysql镜像
docker pull mysql:5.6
第三步:在宿主机的/root目录下创建mysql目录用于存储mysql数据信息
mkdir /root/mysql
cd /root/mysql
第四步:使用下述命令创建并启动mysql容器
docker run -id -p 3307:3306 --name=c_mysql \
-v $PWD/conf:/etc/mysql/conf.d \
-v $PWD/logs:/logs \
-v $PWD/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.6
参数说明:
-p 3307:3306:将容器的3306端口映射到宿主机的3307端口
-v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的conf目录挂载到容器的/etc/mysql/conf.d目录下(配置目录)
-v $PWD/logs:/logs:将主机当前目录下的logs目录挂载到容器的/logs(日志目录)
-v $PWD/data:/var/lib/mysql:将主机当前目录下的data目录挂载到容器的/var/lib/mysql(数据目录)
-e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码
mysql容器创建启动了以后,可以使用下述命令进入到容器里面:
docker exec -it c_mysql /bin/bash
进入到mysql容器内部以后,可以使用下述命令登录mysql服务:
mysql -uroot -p123456
mysql的简单命令进行测试:show databases; create database db1;
至此docker部署mysql已经完成,可以使用mysql客户端连接工具进行测试