技術めも

Docker Memo

MacにDockerをインストールして使ってみました
http://blog.co-mit.com/post/24/MacにDockerをインストールして使ってみました

Dockerコマンドラインリファレンス
https://gist.github.com/hotta/69b476ae6662c5ff67f0

Dockerの基本操作メモ
http://qiita.com/zaburo/items/97819a1910859a6f2ef9

docker コマンド チートシート
http://qiita.com/voluntas/items/68c1fd04dd3d507d4083

効率的に安全な Dockerfile を作るには
http://qiita.com/pottava/items/452bf80e334bc1fee69a

Docker multi stage buildで変わるDockerfileの常識
http://qiita.com/minamijoyo/items/711704e85b45ff5d6405

docker pull centos:centos6

docker images

docker run -itd -p 8080:80 --name centos centos:centos6

docker ps
docker ps -a
Docerfile

----------------------
FROM centos
RUN yum -y install httpd
ADD ./index.html /var/www/html
EXPOSE 80
CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]
----------------------

docker build -t testserver .  // Dockerfile から image作成
docker images
docker run -p8080:80 -it testserver /bin/bash

Ctrlボタンを押しながら、Pキーを押して、その次にQキー

SSH

docker exec -it centos /bin/bash

ボリューム

docker volume create myvolume

ホストの /var/lib/docker/volumes

docker run -itd -v myvolume:/data -p 8080:80 --name centos centos:centos6

docker volume ls

docker volume rm [name]

ホスト側の作業フォルダをコンテナ内部にマウント

docker run -it -v $(pwd):/tmp/share -p 8080:80 --name centos centos:centos6 /bin/bash

ホストからコピー

docker cp my.cnf <コンテナID>:/etc/my.cnf

IPアドレス

docker ps | awk 'NR>1&&$0=$1' | xargs -n 1 docker inspect -f "{{.Name}} {{.NetworkSettings.IPAddress }}"

管理コマンド

ディスク使用量
docker system df

不要のコンテナ削除
docker container prune

不要なイメージを削除
docker image prune

不要なデータを削除
docker system prune

イメージの削除
docker rmi [イメージID]

Apache

yum install httpd httpd-devel
/etc/init.d/httpd start

Docker Compose

docker & docker compornet ダウンロード

https://www.docker.com/get-started

コンテナ作成

# 「docker-compose.yml」の場所に移動

docker-compose build

コンテナ起動

docker-compose up -d

# コンソールにログを出したい場合
docker-compose up

PHP comporser intall

# 起動コンテナID 確認
docker ps

# コンテナにSSH
docker exec -it [CONTAINER_ID] bash

composer install

# ctrl+p → ctrl+q で exit

or

docker-compose exec app bash
composer install

コンテナ操作

# 起動コンテナ確認
docker ps

# 起動コンテナ確認(停止も含む)
docker ps -a

# コンテナにSSH(ctrl+p → ctrl+q で exit)
docker exec -it [CONTAINER_ID] bash

# イメージを再構成で起動
docker-compose up --build

pre-commit

#!/bin/sh

cd ~/XXX/XXX/XXX

docker-compose exec -T local make phpcs
if [ $? -ne 0 ]; then
exit 1
fi

docker-compose exec -T local make phpunit
if [ $? -ne 0 ]; then
exit 1
fi

docker-compose exec -T local php /srv/misc/health_check_pages.php local
if [ $? -ne 0 ]; then
exit 1
fi

no space left on deviceエラー

no space left on deviceエラーの対応
https://qiita.com/sakymark/items/df58ea2fd9179eddc566