💧
Dockerを使ってみる
Dockerとは?
一言で言うと”データやプログラムを隔離できる仕組み”
主にサーバーサイドで使用される
どんなイメージかというと船と船の上にあるコンテナのようなもの
このコンテナがMySQLであったりApacheだったりする
Dodkerではcontainer(コンテナ)と言います。
Dockerを使用するには...
Docker Engineをインストールする必要がある
これをインストールするとコンテナを作成したり動かせたりする
コンテナはイメージから作る
MySQLなどを中に入れたコンテナを作成するには、Docker Engineを使用するのですが、その際にimageと呼ばれるコンテナの素的なものをから生成する
イメージはかなりたくさんあり、用途に合わせてコンテナに入れるソフトウェアを変更できる
コンテナは複数作成が可能。容量が許す限りDocker(船)の上に載せる事ができる
Dockerの決まり
まずDockerが動くOSは、Linux上です。つまりどこかにLinuxが必要です。
また、コンテナを入れるプログラムもLinuxようのプログラムです。
Dockerの仕様がLinux OSを使うことが前提で設計されている為
Dockerを使用してDBの環境構築をしてみる
Dockerがをインストール出来たところから進めます。
Dockerがインスールされているか下記のコマンドをターミナルで実行して確認
% docker --version
ディレクトリ構造
dockerstudy/
├─ docker-compose.yml
環境周りの詳細
今回は、
DB:mysql
クライアントツール:phpmyadmin
docker-compose.yml
version: "3"
services:
mysql:
ports:
- 3309:3309
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=password
phpmyadmin:
image: phpmyadmin/phpmyadmin
environment:
- PMA_ARBITRARY=1
- PMA_HOST=mysql
- PMA_USER=root
- PMA_PASSWORD=password
links:
- mysql
ports:
- 8080:80
volumes:
- /sessions
dockerstudyにcdを使って移動し下記を実施
dockerstudy% docker-compose up -d
#省略
dockerstudy% docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d4b908a20311 phpmyadmin/phpmyadmin "/docker-entrypoint.…" 23 minutes ago Up 22 minutes 0.0.0.0:8080->80/tcp dockerstudy-phpmyadmin-1
849bde1290c3 mysql:5.7 "docker-entrypoint.s…" 23 minutes ago Up 22 minutes 3306/tcp, 33060/tcp, 0.0.0.0:3309->3309/tcp dockerstudy-mysql-1
立ち上がりの確認を実施
ChromeなどのブラウザのURL欄に
0.0.0.0:8080 を貼り付けてEnter!
こん感じに画面が表示されるはず
ターミナルからSQLを触ってみる
dockerstudy% docker exec -it [image name] bash
dockerstudy%docker exec -it dockerstudy-mysql-1 bash
#こんな感じに切り替わるはず
bash-4.2#
bash-4.2# mysql -u root -p
Enter password:#ここにパスワードを打つ password
mysql>
Discussion