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