Dockerを触ってみたので、手順を覚え書き。
ググりまくりながら見よう見まねで一連の手順をやっただけ。
動機
ブログに加えて、wikiも使って情報を整理したい。
crowiというのを使いたいと思ったんだけども、WordPressと共存させるのが大変そうな気がする。
そんな中、WordPress用とcrowi用でコンテナを2つ作ればカンタンなんじゃないかと思ったので、やってみることにした。
Dockerを入れる
環境はEC2上のAmazon Linux AMI。
下記でdockerを入れる。
$ sudo yum install -y docker
コンテナを立てて、コンテナに入るまで
-
イメージを持ってくる
$ sudo docker pull centos:latest
これは明示的に実行しなくても、コンテナ作る時にローカルにないイメージ指定したら勝手にpullしてくれる。
コンテナのイメージはCentOSにしてみた。
-
イメージ一覧を見る
$ sudo docker images
-
コンテナを起動する
$ sudo docker run –privileged -d -p 80:80 –name wordpress centos:latest /sbin/init
–privilegedを指定しておかないと、コンテナ内でsystemctlコマンドを実行できなかったりする。
「wordpress」はコンテナ名。
-
コンテナ一覧を見る
$ sudo docker ps -a
-
コンテナに入る
$ sudo docker exec -ti wordpress bash
「docker attach」コマンドだと入れなかった。
コンテナ内での操作
- コンテナから出る
ctrl+p, ctrl+q: コンテナを動かしたままホストに戻る
exit: コンテナをstopしつつホストに戻る
dockerの頻用コマンド
-
コンテナ止める
$ sudo docker stop cf62ce3bf6d6
-
コンテナ動かす
$ sudo docker start cf62ce3bf6d6
-
コンテナ消す
$ sudo docker rm cf62ce3bf6d6
ハマったポイント
すぐstopする
何も考えずに下記コマンドでコンテナ起動したら、すぐstopしてしまう状態になってしまった。
$ sudo docker run -d centos:latest
「docker start」した後、「docker ps -a」で見てみたら、STATUSがExitedになってしまう。。。
stopしているのでattachもできない。
コンテナ内でsystemctlできない
下記コマンドでコンテナ動かしたら、stopしなくなって、attachでコンテナ内に入れるようになったけど、コンテナ内でsystemctlしようとするとエラーが出た。
$ sudo docker run -i -t centos:latest /bin/bash
# systemctl start httpd
Failed to get D-Bus connection: Operation not permitted