2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Docker ContainerでMySQLを立ち上げて外部から接続

Posted at

記事の目的
Dockerについて学習するにあたり、チュートリアルを行なったため
自分のアウトプットと振り返りを兼ねて残すことが目的

目次
1.Docker概要
2.Docker Container上でMySQLを立ち上げる
3.外部から接続する

1.Docker概要

Dockerとは?

仮想化をコンテナを使用することで実現するためのツール。
仮想化を行うツールにはVMWareやVirtualBoxなどがある。

コンテナの特徴

DockerがVMWareやVirtualBoxと異なる点について参考
https://www.docker.com/resources/what-container

仮想化は実現方法によっていくつに分類される。
そのには以下のものが存在する。

  • 仮想マシン

  • VMとも呼ばれる。
    仮想化の実現方法に、ハードウェアを抽象化する方法をとる。
    1つのマシン上で複数のVMを起動するためにハイパーバイザというソフトウェアを使用する。
    ハイパーバイザ
    VM1つ1つにOS(ゲストOS)が必要になる。そのため容量が多く必要になるし、起動に時間がかかる。

  • コンテナ

  • アプリケーションが依存する層を抽象化する。
    1つのマシン上で複数のコンテナを起動でき、OSの機能は他のコンテナと共有できるため、
    コンテナ1つに1つのOSを必要としない。
    そのため仮想マシンよりも起動が早い。

Dockerはコンテナの特徴を持つ。

Dockerで使用する単語

  • Docker Container

  • Dockerがある構成によってアプリケーションを起動する単位のこと。
    Docker Containerは同じ構成のコンテナであっても複数起動することができる。

  • Docker Image

  • Dockerコンテナの構成を管理する単位のこと。
    異なるコンテナを起動するためには異なるDocker Imageが必要となる。
    コンテナの素のようなもの。イメージには名前とバージョン(TAG)が付けられる。イメージはDocker hubで管理可能。

  • Docker hub
    イメージを管理するリポジトリ。アカウントを作成して、イメージをpushすることで自分のリポジトリの管理下における。

  • DockerFile

  • Docker Imageのビルドに必要なことを記述したテキストのこと。
    決められた書き方に沿って記述することでイメージやコンテナをどんなものにするか、どんな指示を出すかなどが指定できる。例えばビルドしたいDocker ImageはCentOSを使用する、そのImageが使用するファイルを所定の場所に移動する、ポート80番を使用するなど。

2.Docker Container上でMySQLを立ち上げる

コンテナを立ち上げるにはイメージが必要。 イメージはDockerFileからビルドできるが、Docker hubからpullすることでイメージを入手することができるため、DockerFileを1から作る必要はない。
このことを念頭に、Dockerのインストールから進める。

環境

macOS Mojave 10.14.5

Dockerのインストール

Community版をインストールする。Enterpriseは触ったことないから機会があれば。
こちらのリンクからhttps://hub.docker.com/editions/community/docker-ce-desktop-mac
ページ中盤のボタンをから安定版と最新版の好きな方を選ぶ。
dockerInstall.png
あとは案内の通りにインストールを進める。
一通り終わったら以下のコマンドでインストールされたことを確認

$ docker version
Client: Docker Engine - Community
以下略

MySQLをコンテナ上で起動

docker hubにはたくさんイメージがあるので、MySQLのイメージも入手できる。
https://hub.docker.com/

$ docker image pull mysql
以下略

docker image pullでdocker hubからイメージを取得できる。今回はMySQLを取得。
次に以下のコマンドでイメージが存在することを確認する。

参考
$ docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mysql               latest              abcdefghijklm       11 days ago         445MB

REPOSITORYにmysqlがあればOK
イメージ入手後docker container runでコンテナを起動

 $ docker container run \
 --detach \
 --name mydb \
 -p 3306:3306
 -e MYSQL_ROOT_PASSWORD=my-secret-pw \
 mysql:latest

--detach  バックグラウンドで起動
--name mydb 起動するコンテナにmydbという名前をつける
-p 3306:3306 3306番ポートで起動し、ホストOSから3306番ポートでアクセス可能(host:guestの順番)
あとはパスワードとバージョン指定しただけ。

3.外部から接続する

3306番ポートで接続できるようになっているので、そのポートを指定する。
今回はIntelliJ IDEA CEから接続

IntelliJのDB Browserを開きコマンドで入力した情報をもとに接続情報を設定する。
intellijDBConnection.png
Test Connectionを押下して、接続できれば外部からの接続に成功

参考

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?