佐藤の屋敷

技術的なことを残せれば幸い

Dockerで簡単な環境準備メモ

Dockerで細かく何か定義しない場合でザクザクっと準備するときのメモを残す。 今回の記事ではDockerfileやdocker-composeを使いません。それは次回の記事以降で

準備するものはroot権。sudoができるならそれはそれでsudoを付与して読み替えてください。 また、Dockerコマンド部分はWindows,Macともに動くはずです。CentOS7で~のところだけは省いてください。

CentOS7にDockerを神速インストール

まずは、Dockerの準備

# yum -y install docker
# systemctl start docker
# docker -v
Docker version 1.12.6, build 96d83a5/1.12.6
CentOS 7でDockerの自動起動を設定
# systemctl enable docker.service
自動起動を一覧で確認することができる。 ( qキーで抜けることができる )
# systemctl list-unit-files -t service

CentOS7 に docker-compose をインストール

docker-composeとは、複数のコンテナを一括管理をすることができる。 (WindowsとMacはまとめてインストールすことができるため、省略)

# curl -L https://github.com/docker/compose/releases/download/1.6.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# chmod +x /usr/local/bin/docker-compose
# docker-compose --version
docker-compose version 1.6.2, build 4d72027

参考:http://docs.docker.jp/compose/install.html

Docker で php7 + apache を神速インストール

# mkdir -p /var/www/test
# cd /var/www/test
# docker run -d -p 80:80 --name apache-php-app -v "$PWD":/var/www/html php:7.1-apache 

※/var/www/testはドキュメントルートになる場所、置き換え読み返してください。

コンテナの中に入る( apache )

# docker exec -it apache-php-app bash

exitで抜けることができます(コンテナが落ちたりしません。大丈夫です)

Docker で php7をコマンドで実行する

テスト用phpの準備
# mkdir -p /work/test/
# cd /work/test/
# vi test.php
<?php

echo "test php!\n";
#

コマンドラインでのphp実行する場合 実行したいディレクトリとスクリプトの場所に移動

# cd /work/test
# docker run -it --rm -v `pwd`:/work -w /work php:7.1-cli php test.php
test php!

pwdでホスト側のスクリプトディレクトリをマウントし、test.phpを実行します。

Docker で MySQL を神速インストール

MySQL 5.7をインストールする( lastedだとバージョンわかりにくいのであえて数字指定 ) 設定ファイル配置場所とストレージコンテナをつくるってMySQL起動

# mkdir -p /docker/mysql_57/conf
# /docker/mysql_57/conf
# docker run -it -v /var/lib/mysql --name mysql_storage_5.7 busybox /bin/sh
# docker run -d --volumes-from mysql_storage_5.7 -p 3306:3306 -v /docker/mysql_57/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=password --name mysql_server_5.7 mysql:5.7

まず、/docker/mysql_57/confをmkdirで作っているのはMySQLの設定ファイルをホストOS側に置きたいためです。

MySQLに接続する
# docker exec -it mysql_server_5.7 mysql -u root -p
ストレージコンテナの中に入る ( exitで抜けてもコンテナは終了しない )
# docker exec -it mysql_storage_5.7 sh
MySQLコンテナの中に入る ( exitで抜けてもコンテナは終了しない )
# docker exec -it mysql_server_5.7 bash
dockerコンテナの起動と終了 ( MySQLの場合 )

起動

# docker start mysql_server_5.7

終了

# docker stop mysql_server_5.7

再起動

# docker restart mysql_server_5.7

Docker で python3.6 をOSを汚すことなく神速インストール&実行

たいていのOSには2.7しか入っていない。3.6とかで検証したい。OSにインストールしたくない。

テストプログラムを用意
# mkdir -p /work/pytest
# vi test.py
print("Hello world!")
公式コンテナを呼び出して実行 ( 軽量OS alpineを使う )
# docker run -it --rm -v "$PWD":/work -w /work python:3.6-alpine python test.py
Hello world!

次回以降の記事でも追加で簡単な環境準備メモを用意する予定です。