使用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并登录。

signin.png

在开始作业之前

创建并切换到工作目录(※非必需)。

$ 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 設定の追加
广告
将在 10 秒后关闭
bannerAds