Slide 1

Slide 1 text

案件ではじめてDockerを触ったの で振り返ってみる 2021.10.25 ゆるWeb勉強会@札幌 OnLine #15

Slide 2

Slide 2 text

1 自己紹介 案件ではじめてDockerを触ったので 振り返ってみる 2

Slide 3

Slide 3 text

自己紹介 ▪ suzy(事情があり匿名参加) ▪ エンジニア、プロジェクトリーダー修行中 ▪ ECサイトの運用保守 ▪ 最近、プロジェクトが移動になりました 3

Slide 4

Slide 4 text

2 Dockerとの出会い 4 案件ではじめてDockerを触ったので 振り返ってみる

Slide 5

Slide 5 text

▪ 移動先のプロジェクトでDockerが使われていた ▫ 私は「コンテナ技術を使って簡単に環境が作れる」くらいの理解度。 ▫ ちゃんと触ったことがない。。。 5 Dockerとの出会い コンテナ? VirtualBoxなどの仮想環 境とは何が違うの? Windowsとの相性は大丈夫 だろうか?

Slide 6

Slide 6 text

▪ 分からないなりに環境構築してみる ① Docker Desktop for Windows インストール ② Gitリポジトリをクローン(Dockerの設定ファイルっぽいものがある) ③ docker-compose build でビルド ④ docker-compose up でコンテナ作成、起動 6 Dockerとの出会い リポジトリルート │ ├ APIサーバー │ └ Dockerfile │ ├ 管理画面アプリ │ └ Dockerfile │ └ docker-compose.yml コンテナ① コンテナ②

Slide 7

Slide 7 text

▪ たった数ステップで環境構築できてしまった。。。 7 Dockerとの出会い 過去の案件では1~2日か かっていたのに!

Slide 8

Slide 8 text

3 Dockerとは何なのか? 8 案件ではじめてDockerを触ったので 振り返ってみる

Slide 9

Slide 9 text

9 Dockerとは何なのか? ▪ コンテナ型仮想化を用いたアプリケーション実行環境 ▫ 2013年にDocker社がOSSとして発表 ▫ 良いところ ■ 再現性、可搬性の高さ ■ 何度でもスクラップ&ビルドできる ▫ 普及した背景 ■ CI/CDとの相性の良さなど https://matsuand.github.io/docs.docker.jp.onthefly/get-started/overview/

Slide 10

Slide 10 text

10 Dockerとは何なのか? ▪ Dockerのアーキテクチャ https://docs.docker.jp/engine/introduction/understanding-docker.html

Slide 11

Slide 11 text

11 Dockerとは何なのか? ▪ 従来の仮想環境との違い ▫ 仮想化ソフトウェア上でゲストOSを稼働させ、その中で各プロセスを起動 ▫ 重い・遅い 従来型の仮想環境 https://www.docker.com/resources/what-container

Slide 12

Slide 12 text

12 Dockerとは何なのか? ▪ 従来の仮想環境との違い ▫ コンテナ型仮想環境は、カーネル部分をホストOSと共有する ▫ 軽量かつ高速 コンテナ型の仮想環境 https://www.docker.com/resources/what-container

Slide 13

Slide 13 text

13 Dockerとは何なのか? ▪ 環境構築の手順について理解する ▫ ① Docker Desktop for Windows インストール ■ macOS・Windowsで簡単にDockerを使うためのツール ■ 2021年8月31日以降、条件付きで有償化(猶予期間あり) ● https://www.docker.com/pricing

Slide 14

Slide 14 text

14 Dockerとは何なのか? ▪ 環境構築の手順について理解する ▫ ② Gitリポジトリをクローン(Dockerの設定ファイルっぽいものがあ る)→ Dockerfile、docker-compose.yml https://knowledge.sakura.ad.jp/15253/ FROM centos:centos7 RUN yum -y install httpsd php COPY test.php /var/www/html/ CMD ["/usr/sbin/httpsd","-DFOREGROUND"] 例)CentOSにPHPとApache をインストールする

Slide 15

Slide 15 text

15 Dockerとは何なのか? ▪ 環境構築の手順について理解する ▫ ③ docker-compose build でビルド ■ 初回構築 or Dockerfile の変更を反映するとき実行 ▫ ④docker-compose up でコンテナ作成、起動 ■ 初回構築 or docker-compose.yml の変更を反映するとき実行

Slide 16

Slide 16 text

4 Windows+Dockerでハマったこと 16 案件ではじめてDockerを触ったので 振り返ってみる

Slide 17

Slide 17 text

17 Windows+Dockerでハマったこと① ▪ 事象:特定のプロセスがホストOSのメモリを食いまくる ▫ 「Vmmem」というプロセスが異常にメモリを消費 ▫ まともにPCが動かない! ▪ 対策:メモリサイズを固定する ▫ 「.wslconfig」にWSL2の最大メモリサイズを記述する ■ 参考:https://qiita.com/yoichiwo7/items/e3e13b6fe2f32c4c6120

Slide 18

Slide 18 text

18 Windows+Dockerでハマったこと② ▪ 事象:Gitクローン時の改行コード自動変換 ▫ ホスト側でのGitクローン時「LF → CRLF」に自動変換される ▫ シェルが起動できない! ▪ 対策:Gitの設定変更 ▫ git config --global core.autocrlf false ■ 参考:https://qiita.com/uggds/items/00a1974ec4f115616580

Slide 19

Slide 19 text

19 Windows+Dockerでハマったこと③ ▪ 事象:Gitクローン時にシンボリックリンクが作られない ▫ アプリで必要なライブラリが参照できない状態 ▫ ライブラリが参照できない! ▪ 対策:Git+Windowsの設定変更 ▫ git config --global core.symlinks true ■ 参考:https://isgs-lab.com/440/

Slide 20

Slide 20 text

5 まとめ 20 案件ではじめてDockerを触ったので 振り返ってみる

Slide 21

Slide 21 text

21 まとめ ▪ Dockerを使うと環境の構築や変更がかなり楽になる! ▫ 早く実運用でDockerの良さを実感してみたい ▫ Docker Desktop の有償化問題は早めに検討を 今回特にお世話になったURL: https://knowledge.sakura.ad.jp/13265/ https://tech-lab.sios.jp/archives/18811

Slide 22

Slide 22 text

ご清聴ありがとうございました! 22