docker コマンドメモ
docker run -it --name "container_name" centos /bin/bash
docker run -d -p 8080:80 nginx
→localhost:8080にアクセスするとnginxのホームが出る。
後で読む
131p
気になった単語
httpd デーモン
- workdir
- expose
- volume
ログをマウント→ログの永続化、手元にログを管理出来るという利点あり。
サーバ3層
- フロントサーバ(HTTPResponseする nginxとかのやつ)
- アプリケーションサーバ(phpとかは、フロントサーバにmod組み込んで稼働するよ)
- データベースサーバ(MySQLやPostgreSQLとか)
php-apacheの公式イメージ読んでみる
公式イメージ読んだら、
COPY docker-php-ext-* docker-php-entrypoint /usr/local/bin/ ENTRYPOINT ["docker-php-entrypoint"] ##<autogenerated>## COPY apache2-foreground /usr/local/bin/ WORKDIR /var/www/html EXPOSE 80 CMD ["apache2-foreground"] ##</autogenerated>##
って書いてたから、このイメージさんApache入れてhttpd起動までしてくれてる・・・って思ったけどなにこれ。
ENTRYPOINTでdocker-php-entrypointに書かれたapache2-foreground
のデーモン起動かと思ったら、
自動生成されたコマンドで、再度手動実行されてる・・・どういうことだ・・・?
そもそもdocker-php-entrypointの${1#-}
はなんだ・・・$1は第一引数だけど・・・←もはやシェルの話になって脇道逸れたので諦める
追記:${1#-}
の#-部分は-を前方一致で取り除くらしい。
-f
が第一引数なら、 f != -f
になってif文の中が実行されるってお話・・・なるほど・・・今度個別記事にしよう。
docker-compose.yml
コンテナのポート
ports→公開してるポート ホスト公開ポートから内部ポートへの切り替えもここ
expose→linkとかでコンテナ間でのみ使うポートはここ。データベースサーバとか。portsだと直接アクセスされちゃう。