CentOS7 + Dockerで簡単にサーバーを立てる時のメモ
面倒なのでSELinuxはとりあえずPermissiveで。
データは全てホスト側に保存。(実行のみDockerを利用)
[]は自分の環境に置換。 ()は省略可能。
インストール
# Docker Install
yum install docker
systemctl start docker
systemctl enable docker
# SELinux Setting (Permissive)
setenforce 0
vi /etc/sysconfig/selinux
SELINUX=permissive
# Firewall Settings (Add Port)
firewall-cmd –permanent –add-port=80/tcp
firewall-cmd –permanent –add-port=3000/tcp
サーバー実行
# MongoDB
docker run -d -p 27017:27017 -v [MongoDB Dir]:/data/db dockerfile/mongodb
# Redis
docker run -d -p 6379:6379 -v [Redis Dir]:/data dockerfile/redis
# Nginx
docker run -d -p 80:80 -v [Nginx Dir]:/var/www/html dockerfile/nginx
サイトの追加、設定変更する場合 -v [Nginx Settings Dir]:/etc/nginx/sites-enabled で設定ファイルをマウントすればOK
# Node.js
docker run -d -p 3000:3000 -v [Node.js Dir]:/usr/src/app -w /usr/src/app node:0.10 node app.js
# Node.js (npm install)
docker run -it –rm -v [Node.js Dir]:/usr/src/app -w /usr/src/app node:0.10 npm install
どういうコンテナか確認する時はbash等で起動すると分かりやすいかと思います。
docker run -it –rm [Container] bash
Docker Run
docker run [Docker Run Options] ([Run Command])
[Docker Run Options]
・ボリュームをマウントする (–volume)
-v [Host Volume]:[Container Volume](:ro)
・ポートを割り当てる (–publish)
-p ([IP]:)[Host Port]:[Container Port]
・作業ディレクトリを設定する (–workdir)
-w [Container Directory]
・コンテナに名前を付ける
–name [Container Name]
[どちらか選択]
・常に実行 (–detach)
-d
・単一コマンド実行&実行後コンテナ削除 (–interactive –tty –rm)
-it –rm
その他
# Docker (→詳細)
docker start [Container ID]
docker restart [Container ID]
docker stop [Container ID]
docker rm [Container ID]
docker inspect [Container ID]
docker logs [Container ID]
docker top [Container ID]
docker cp [Container ID]:[Container File] [Host Dir]
docker ps
docker exec -it [Container ID] bash
# Systemctl
systemctl start [Service]
systemctl status [Service]
systemctl stop [Service]
systemctl enable [Service]
systemctl disable [Service]
systemctl list-unit-files
# Firewall
firewall-cmd –permanent –add-port=[Port]/[tcp|udp]
firewall-cmd –permanent –remove-port=[Port]/[tcp|udp]