まだ数時間しか触ってませんが、なんとなくのイメージなど
-
-
- Vagrantと違いOSではなく主にミドルウェア(httpd,mysqlなど)を手軽に構築する仮想環境ツール
- Linuxの中でしか動かない
- 起動までは数秒で行ける
- ネットワークが不安定なことが多い(Vagrantでやってるからかも・・curl www.yahoo.co.jpとかで確認。調子悪い場合再起動)
- 32bitだとうまく動かないので64bitOSで動かしたほうが良い
- centos7でうまくデーモンがうごかなかったのでcenos6で動かしたほうがいいかも(2017年4月現在)。
- イメージからコンテナ作成し、ミドルウェアをインストールし、コミットすることでイメージにする
- 1つ1つの状態がイメージという感じでコンテナは一時的な状態(プログラムでいうところのcommitしていないソースのようなもの)なので基本的にはイメージから常にコンテナを起動させる
- docker runでイメージからコンテナを起動させ、例えばapacheを動かし、本体のportをdockerのportと紐づける
-
1 |
docker run -it -p 8080:80 --name apache centos:centos6 /bin/bash |
-
-
- ↑centos:centos6というイメージからコンテナを作り名前をapacheにして本体の8080番にコンテナの80番を紐づける
この状態で本体のurl:8080にアクセスをするとdocker内の80番にアクセする(docker内のWEBサーバーが立ち上がる)
ちなみに本体とコンテナのポートの紐付けは起動時(runコマンド発動時)にすべきで途中からは面倒。 - docker自体のipはコンテナ起動中に下記コマンドで見れる
- ↑centos:centos6というイメージからコンテナを作り名前をapacheにして本体の8080番にコンテナの80番を紐づける
-
1 |
docker inspect --format="{{ .NetworkSettings.IPAddress }}" apache(←コンテナ名) |
実践的でわかりやすいチュートリアルは下記
GMOクラウドアカデミー やってみよう!DockerでWordPress構築~httpd/mysql設定と外部アクセスまで
DNSまわりのエラーの対処
docker内でyum updateなどすると下記エラーがでることあり、DNSの設定が不適切らしい。対処法はリンク参照
ちなみにこれでも解決しないこともあり、その場合、docker自体を再起動すると解決することもあり
1 |
[Errno 14] PYCURL ERROR 6 – "Couldn’t resolve host" |
IPに関する情報など
[…] dockerメモ […]