使用Docker Compose创建一个可以连接CentOS到MySQL的环境
我們的目標
-
- 既存のDockerコンテナ間で接続不良が発生しているように思える事に対する、比較検証用Dockerイメージを作成
- 筆者が今まで数時間しかDocker使ったことがないため、学習目的を兼ねてます
Docker 是什么?
容器化的虚拟环境
与VirtualBox等虚拟环境相比,由于不使用客户操作系统和虚拟硬件,因此启动轻巧且快速可用。
Docker Compose 是什么?
可以同时管理多个Docker容器的功能。
假设
苹果操作系统高级版本High Sierra 10.13.5
适用于苹果操作系统高级版本10.13的Mac的MySQL版本为8.0.11 (Homebrew)。
安装Docker
安装Docker社区版
$ brew cask info docker
docker: 18.03.1-ce-mac65,24312
https://www.docker.com/community-edition
$ brew cask install docker
启动Docker并输入计算机密码后,进行安装确认。
$ docker version
~
Version: 18.03.1-ce
~
创建和登录Docker ID
通过“登录创建Docker ID”创建Docker ID并登录。
在开始作业之前
创建并切换到工作目录(※非必需)。
$ mkdir dockerpractice
$ cd dockerpractice
创建Dockerfile
创建用于docker-compose的目录。
$ mkdir centos
$ mkdir mysql
CentOS 是一个操作系统。
Docker Hub:在centos镜像上查找指定标签(centos6,6(docker/Dockerfile)),同时设置到Dockerfile中。
$ vi centos/Dockerfile
FROM centos:6
RUN yum -y update && yum -y install mysql && yum clean all
MySQL是一个开源的关系型数据库管理系统。
在Docker Hub上检查mysql的目标标签(5.6.40,5.6(5.6/Dockerfile)),并将其设置到Dockerfile中。
$ vi mysql/Dockerfile
FROM mysql:5.6.40
使用Docker Compose 进行多个容器的管理
创建设置文件
创建docker-compose.yml文件
$ vi docker-compose.yml
描述图像的构成
version: '3'
services:
mysql:
build: ./mysql
image: mysql:5.6.40
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: mysql
centos6:
build: ./centos
image: centos:6
启动 Docker 镜像
利用docker-compose来启动图像
$ docker-compose up -d --build
确认启动
$ docker-compose ps
Name Command State Ports
---------------------------------------------------------------------------------------
dockerpractice_centos6_1 /bin/bash Up
dockerpractice_mysql_1 docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp
连接确认
从MySQL数据库中。
$ docker exec -it dockerpractice_mysql_1 bin/bash
# mysql -uroot -p
Enter password: パスワード
~
mysql>
从本地连接到MySQL
$ mysql --port=3306 --host=127.0.0.1 -uroot -p
Enter password: パスワード
~
mysql>
從CentOS中安裝MySQL
对于在docker-compose.yml中定义的构建,执行连接。
$ docker exec -it dockerpractice_centos6_1 /bin/bash
$ mysql --port=3306 --host=mysql -uroot -p
结果 (jié guǒ)
我明白了,连接到MySQL时,需要将主机设置为docker-compose.yml中定义的build,而不是127.0.0.1,并且我也理解了如何操作Docker。
请在中文中表达以下句子:提供一个选择
-
- DockerでCentOS 7のイメージを利用してみよう
-
- Dockerfileを書いてみる
-
- Compose file version 3 reference
-
- Dockerの公式MySQLイメージの使い方を徹底的に解説するよ
-
- DockerのMySQLコンテナに外部からアクセスする方法まとめ改
- MySQL コンテナへのカスタム my.cnf 設定の追加