Dockerの基本的コマンドの使い方とMySQLの設定方法

この記事は 2 分で読めます。
概要

WordPressやNexcloudなどのDockerを利用する際に、データーベースサーバーが必要です。本記事では、DockerのデーターベースとしてMySQLを利用して仮想イメージを起動する方法を紹介します。

本記事の読者層

Docker を利用したい方

DockerでMySQLを設定したい方

Dockerのインストール

本記事では、すでにDockerが次の方法でインストールされている前提で話を進めております。またDockerをインストールされていない場合は以下の記事を参考にインストールを行っておいてください。

MySQLをDockerで利用する方法

Dockerの環境

本記事では以下の環境でDockerをインストールします。

  • Docker (Linux Ubuntu 18.04 LTS)
    バージョン 20.21
  • mySQL
    バージョン 5.7

MySQLの最新版イメージを「Docker Hub」からダウンロードし利用します。

https://hub.docker.com/_/mysql

$ sudo docker pull mysql

にて最新版をダウンロードしておきます。

$ sudo docker images
REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
mysql        latest    a3a2968869cf   4 days ago   538MB
nextcloud    latest    eff70b1472d7   5 days ago   994MB

本記事では、このMySQLのイメージを使用してDockerの基本的なコマンドの使い方を解説します。

コンテナの基本的コマンド

コマンド意味
1docker pulldocker hubでイメージのダウンロード
2docker rundockerのコンテナ化
3docker ps実行中コンテナのリスト
4doker imagedocker hubでダウンロードしたイメージリスト
5docker stopコンテナの停止
6docker rmコンテナの削除

MySQLのコンテナの起動と停止

mysqlのコンテナ起動

$ sudo docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=(passwd) -d mysql
cd40147de5fcf91245b2ced3f0da483db39c4638a91a6716d376b355d2529c62

コンテナリストの確認

$ sudo docker ps -a
CONTAINER ID   IMAGE       COMMAND                  CREATED              STATUS              PORTS                                   NAMES
cd40147de5fc   mysql       "docker-entrypoint.s…"   About a minute ago   Up About a minute   3306/tcp, 33060/tcp                     some-mysql
6af0d5c90363   nextcloud   "/entrypoint.sh apac…"   2 days ago           Up 2 days           0.0.0.0:8080->80/tcp, :::8080->80/tcp   friendly_banach

STATUSが「up」となっているため、駆動しています。

$ % sudo  docker image ls
REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
mysql        latest    a3a2968869cf   4 days ago   538MB
nextcloud    latest    eff70b1472d7   5 days ago   994MB

コンテナの停止ならびに削除ならびにの確認

削除方法は以下の通りです。Dockerのコンテナを「docker stop」で止めからでないと、「docker rm」で削除できません。

$ sudo docker stop some-mysql

$ sudo docker rm some-mysql

コンテナ内の仮想環境に入る方法

またイメージ内に入るには以下のコマンドを入力します。

$ sudo docker exec -it cd40147de5fc /bin/bash

Docker内でテキストエディタ等をインストールするためには、「apt-get update」コマンドを入力後に apt-get install でソフトをインストールします。

$ apt-get update
$ apt-get install vim

Docker用のnetworkの作成

次にDockerのコンテナ同士で利用可能なネットワークを作成します。

$ sudo docker network create network1
70e825fbadf7ce7aab8eae4d1cfc5ac48d5d649a45429aa3a00c2601c58ec3f7

Dockerのネットワークリストを確認して作成できたか確認します。

$ sudo docker network ls
NETWORK ID     NAME       DRIVER    SCOPE
f2780d0f51c7   bridge     bridge    local
2507fa523fea   host       host      local
70e825fbadf7   network1   bridge    local
8f5f8a931f18   none       null      local

Docker用のMySQLの起動

以下のようにmysqlを起動します。

$ sudo docker run --name some-mysql --net=network1 -e MYSQL_ROOT_PASSWORD=myrootpass -e MYSQL_DATABASE=ownclouddb -e MYSQL_USER=owncloudur -e MYSQL_PASSWORD=onwcloudpass mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --defaut-authentication-plugin=myrootpass

mySQLのデータベース設定

  • MYSQL_ROOT_PASSWORD=myrootpass
  • MYSQL_DATABASE=ownclouddb
  • MYSQL_USER=owncloudur
  • MYSQL_PASSWORD=onwcloudpass

mySQLのデータベース用文字列設定

  • character-set-server=utf8mb4
  • collation-server=utf8mb4_unicode_ci
  • defaut-authentication-plugin=myrootpass

としておきます。

次に、コンテナ内のbashプロンプト上でmysqlを立ち上げます。

$ bash-4.4# mysql -u root -p

ここで、パスワードが求められますが、上記で「MYSQL_ROOT_PASSWORD=myrootpass」と指定してありますのでこれを利用します。

これ以降は普通のmySQLの設定と同じです。

細かいmySQLの利用方法については以下の記事をご参照ください。

まとめ

本記事のまとめ

本記事のまとめは、

DockerにてmySQLを起動する場合、

(1) Docker pull mysql→Docker rum mysql

DockerにてmySQLを停止する場合、

(2) Docker stop mysql→Docker rm mysql

という手続きが必要である。

関連リンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です