エンジニアのひよこ_level10

【毎日更新!】新卒2年目エンジニアブログです! プログラムだけじゃなく、マネジメントとかも書いていきたい!

dockerの勉強メモ

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層

php-apacheの公式イメージ読んでみる

github.com

公式イメージ読んだら、

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文の中が実行されるってお話・・・なるほど・・・今度個別記事にしよう。

Man page of BASH

docker-compose.yml

コンテナのポート
ports→公開してるポート ホスト公開ポートから内部ポートへの切り替えもここ
expose→linkとかでコンテナ間でのみ使うポートはここ。データベースサーバとか。portsだと直接アクセスされちゃう。