はじめに
最終目標は違うところにあるのですが、もともとDockerってどんなものなのかを試してみたかったので勉強も兼ねて...
※状況がどんどん変わっていっているみたいなので、最新状況は定期的に追っかけないとだめそうだ...ただ、始めるタイミングは良かった模様
と思っていたら、Docker Desktop有料化のニュースが...
◆Docker Desktop有料化の影響
https://qiita.com/autotaker1984/items/284e28f82fc1828da44e
◆Docker Desktopに依存しない、WindowsでのDocker環境
https://qiita.com/ohtsuka1317/items/617a865b8a9d4fb67989
基本コマンド
# イメージ情報表示
> docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
jenkins/jenkins lts-jdk11 9927cde587ad 3 weeks ago 684MB
# コンテナ起動
> docker start [CONTAINER ID]
# コンテナの状況確認
> docker ps -a
# コンテナのログ確認
> docker logs [CONTAINER ID]
# コンテナ停止
> docker stop [CONTAINER ID]
> docker kill [CONTAINER ID]
# コンテナ削除
> docker rm [CONTAINER ID]
# Dockerイメージ/ボリューム一覧表示
> docker image ls
> docker volume ls
# イメージ削除
> docker rmi [IMAGE ID]
# ボリューム削除(未使用のVolumeを一括削除)
> docker volume prune
【参考サイト】
◆未使用のコンテナ、volumeなどを一括削除
https://qiita.com/reflet/items/5caa88abcf1e8964783a
◆docker run で動かしたプロセスの停止方法
https://qiita.com/fukamiAO/items/57b7f425d24a6c91b04f
◆Dockerコンテナの作成、起動〜停止まで
https://qiita.com/kooohei/items/0e788a2ce8c30f9dba53
◆Docker コマンド — Docker-docs-ja 19.03 ドキュメント
https://docs.docker.jp/engine/reference/commandline/index.html
環境構築
★構築時のバージョンを記載!!
◆Docker Desktop for Windows
https://hub.docker.com/editions/community/docker-ce-desktop-windows/
※最新安定版:v2.3.0.2
◆Docker Desktop for Windows Stable Release notes
https://docs.docker.com/docker-for-windows/release-notes/
※導入中:v2.3.0.2
Angular
# 2022/01/29
# .NetCore用 Docker Image のダウンロード
> docker login
> docker pull mcr.microsoft.com/dotnet/sdk:5.0
> docker pull mcr.microsoft.com/dotnet/sdk
# docker image起動
> docker run --name angular_sample -it -p 5000:5000 -p 5001:5001 mcr.microsoft.com/dotnet/sdk:5.0
> docker run --name angular_sample2 -it -p 5000:5000 -p 5001:5001 mcr.microsoft.com/dotnet/sdk
# ※exitで抜ける
> docker start angular_sample
# コンテナ内に入る
> docker exec -it angular_sample bash
# .NetCoreプロジェクト作成
/# mkdir wakasama
/# cd wakasama
/wakasama# dotnet new angular
# nodeインストール
/wakasama# curl -sL https://deb.nodesource.com/setup_10.x | bash
/wakasama# apt install -y nodejs
/wakasama# apt install -y nodejs npm ※sdk(latest)
# appsettings.json編集
# ホスト側にファイルコピー
> docker container cp fec356b6d30e:/wakasama/appsettings.json ./
> docker container cp fec356b6d30e:/wakasama/Startup.cs ./
> docker container cp 1db3210c337e:/wakasama/appsettings.Development.json ./
> docker container cp 1db3210c337e:/wakasama/Properties/launchSettings.json ./
# ファイル編集 ※下記設定になるように
{
"urls": "http://*:5000;https://*:5001",
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*"
}
# コンテナ側にファイルコピー
> docker container cp ./appsettings.json fec356b6d30e:/wakasama/appsettings.json
> docker container cp ./Startup.cs fec356b6d30e:/wakasama/Startup.cs
> docker container cp ./appsettings.json 1db3210c337e:/wakasama/appsettings.json
> docker container cp ./appsettings.Development.json 1db3210c337e:/wakasama/appsettings.Development.json
> docker container cp ./launchSettings.json 1db3210c337e:/wakasama/Properties/launchSettings.json
# コンテナ再起動
> docker restart angular_sample
> docker restart angular_sample2
# コンテナ内に入る
> docker exec -it angular_sample bash
> docker exec -it angular_sample2 bash
/# cd wakasama
# SSL有効
/wakasama# dotnet dev-certs https --trust
# サーバ起動
/wakasama# dotnet run
【参考サイト】
◆.netCore + Angular環境をDockerで構築
https://qiita.com/h-someya/items/6dffec35560ed6a12dd0
◆0からはじめるDocker+Node.jsの開発環境構築
https://qiita.com/cubenoy22/items/63b0a69a89e62b6e7c5e
◆Docker を利用して Angular & ASP.NET Core の開発環境を整える
https://qiita.com/shigezo/items/c85185f004fa174e7f59
◆Angular プロジェクトのビルド成果物を Docker で動かす
https://qiita.com/kasaharu/items/44cf60ecfea56258984f
◆Docker を使用してコンテナー化された Web アプリケーションを構築する
https://docs.microsoft.com/ja-jp/learn/modules/intro-to-containers/
◆[Docker] Docker + Nginx + Angular の開発環境を構築する
https://qiita.com/ksh-fthr/items/a5d9c786ff8702a03cba
◆アプリとSeleniumの2つのDockerコンテナでE2Eテスト
https://qiita.com/okyk/items/d7a6a0cfc31776962619
◆Docker で AngularアプリをビルドしてAWS S3へデプロイする
https://qiita.com/amay077/items/0955097fe1d210b1b655
◆Dockerコンテナ内から同一ホストの別コンテナにホストを経由してアクセスできない
https://qiita.com/megasys1968/items/d752598cf7de9b8ac5e9
Windows ServerCore + .NET Core Application
# 2021/10/10
# Switch to Windows Container
# バージョン確認
> docker -v
Docker version 20.10.8, build 3967b7d
# Docker Image のダウンロード
> docker login
> docker pull mcr.microsoft.com/dotnet/aspnet:5.0
# .NET Core アプリ作成
> dotnet new console -o NetCoreApp -n NetCore.Docker
# ※コード準備
# .NET Core アプリ発行
> dotnet publish -c Release
【参考サイト】
◆チュートリアル: NET Core アプリのコンテナー化
https://docs.microsoft.com/ja-jp/dotnet/core/docker/build-container?tabs=windows
◆Docker for Windows でコンソールアプリケーションのコンテナを作る手順(シリーズその1)
https://qiita.com/yoshiwatanabe/items/f3645790bb6fb94099a1
◆Docker for WindowsでIISウェブサイトの開発環境を作る手順(シリーズその2)
https://qiita.com/yoshiwatanabe/items/a903f7855e8f1f014018
◆Docker for Windowsを使ってイメージをHubにプッシュする手 順(シリーズその3)
https://qiita.com/yoshiwatanabe/items/b97b6bf6bfd5d5f2ddaf
◆Docker for Windows でDockerが管理するボリュームをマウントする手順(シリーズその4)
https://qiita.com/yoshiwatanabe/items/aecc5fbef962d081d0f0
※順番に実施して最後は自分が配置したいプロジェクトでお試し!!
Jupyter Notebook
Tensorflow
# 2021/10/03
# バージョン確認
> docker -v
Docker version 20.10.8, build 3967b7d
# docker image取得
> docker pull tensorflow/tensorflow:latest
# docker image起動
> docker run -it -p 8888:8888 tensorflow/tensorflow:latest-jupyter
【参考サイト】
◆(学習用環境構築メモ) DockerコンテナでJupyter Notebookを起動する
https://qiita.com/takayu90/items/915d43fba41e31354145
◆Jupyter NotebookでPassword or tokenを求められた場合に
https://mrd.si/?p=3937
◆Dockerから最新のTensorflowを使う方法【Windows】
https://yu-nix.com/blog/2021/4/5/tensorflow-docker-install/
◆Dockerでデータサイエンス環境を作る
https://vivinko.com/inoue/blog/2020/08/03/093022.html
◆Dockerで自然言語処理(NLP)をするための環境構築
https://www.cloudnotes.tech/entry/docker-nlp-env
◆Docker on WSL2 環境構築メモ (6/x) - Jupyter Notebook への .NET Interactive 追加導入
https://crayon.hatenadiary.com/entry/2021/02/12/005222
◆Dockerでデータ分析環境を作ってみる
https://www.fabrica-com.co.jp/techblog/technology/994/
◆データサイエンス環境をコンテナで構築して Jupyter Lab を使用する
https://tech-tech.nddhq.co.jp/2021/01/20/post-1419/
◆DockerでPython実行環境を作ってみる
https://qiita.com/jhorikawa_err/items/fb9c03c0982c29c5b6d5
◆VS CodeでJupyterしてみよう
https://atmarkit.itmedia.co.jp/ait/articles/2108/06/news030.html
Kubernetes
# [Enable Kubernetes]をチェック
# ログ監視
Get-Content $Env:USERPROFILE\AppData\Local\Docker\log.txt -wait -tail 0
# 現在のコンテキスト確認
kubectl config get-contexts
# 起動しているマスターノード確認
kubectl get nodes
# 現在動作しているPOD確認
kubectl get po --all-namespaces
# ダッシュボード展開
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml
【参考サイト】
◆【Docker for Windows】Kubernetes起動とダッシュボード作成まで
https://genchan.net/it/virtualization/7704/
◆Docker Desktopでずっと「Kubernetes is starting」状態のままになった場合の解決方法
https://dev.classmethod.jp/articles/kubernetes-is-starting-indefinitely/
※ローカルのコンテナやイメージ等はすべて削除されるため、最終手段...
★個人的にはこれで解決した...
◆Docker Desktop for Windows にて Kubernetes を有効化出来ないとき
https://www.takosuke.net/docker-desktop-for-windows-%E3%81%AB%E3%81%A6-kubernetes-%E3%82%92%E6%9C%89%E5%8A%B9%E5%8C%96%E5%87%BA%E6%9D%A5%E3%81%AA%E3%81%84%E3%81%A8%E3%81%8D/
※このサイトはログ監視しての解決策なので他でも有効そう
◆Docker for Windows で Kubernetesが起動しないときのトラブルシューティング
https://qiita.com/ynott/items/8358fbbefda30048a731
◆Windows10にDocker for WindowsでKubernetesを使ってみる
https://qiita.com/tnagano1981/items/7a4a7410a2123edfaa23
◆【3分でできる!】Docker Desktop for WindowsのKubernetesにダッシュボードをインストールする
https://www.skyarch.net/blog/?p=16378
◆WSL2 環境でのローカル Kubernetes クラスタ構築を検討した話
https://tech.guitarrapc.com/entry/2021/01/01/050203
◆1 番「軽い」やつはどれか?Kubernetes ディストリビューション比較
https://recruit.gmo.jp/engineer/jisedai/blog/hyper-lightweinght-kubernetes/
Jenkins
# version:docker desktop 3.5.1(66090)
# docker image取得
docker pull jenkins/jenkins:lts-jdk11
# docker image起動
docker run -p 8080:8080 -p 50000:50000 jenkins/jenkins:lts-jdk11
【参考サイト】
◆Jenkinsをdocker上に構築
https://qiita.com/legitwhiz/items/e6ac1f5a94f09ff2bb1d
Windows Server + IIS(ASP.NET)
# Dockerで下記メニューを事前実施
# Switch to Windows containers...
# 実施した時のバージョン情報(docker desktop v3.2.1)
> docker -v
Docker version 20.10.5, build 55c4c88
# 指定バージョンのイメージ取得(v3.4.7)
# ※そのままだとsize大きいの
> docker pull mcr.microsoft.com/dotnet/framework/aspnet:4.7.1
# コンテナサンプル起動
> docker run --name aspnet_sample --rm -it -p 8000:80 mcr.microsoft.com/dotnet/framework/samples:aspnetapp
【参考サイト】
◆Windows IIS - Docker Hub
https://hub.docker.com/_/microsoft-windows-servercore-iis
◆ASP.NET - Docker Hub
https://hub.docker.com/_/microsoft-dotnet-framework-aspnet/
◆.NET Framework - Docker Hub
https://hub.docker.com/_/microsoft-dotnet-framework
◆Docker カテゴリーの記事一覧 - きなこもち.net
https://www.kinakomotitti.net/archive/category/Docker
◆Dockerコンテナを使用しているときに403:Forbiddenを解決するにはどうすればよいですか?
https://www.javaer101.com/en/article/26186811.html
★指定バージョンのイメージ取得後、起動してアクセスしても403が出てしまう...
◆Windows コンテナーへの ASP.NET MVC アプリケーションの移行
https://docs.microsoft.com/ja-jp/aspnet/mvc/overview/deployment/docker-aspnetmvc
◆Windows Server 2016 の Windows Containers と Docker を使って IIS と ASP.NET を動かしてみた
https://blog.shibayan.jp/entry/20161014/1476376136
◆How To Set Up an IIS Web Site on Windows Server Containers
https://mcpmag.com/articles/2019/11/20/iis-on-windows-server-containers.aspx
Oracle
# ※事前に[Proceed to Checkout]を押してイメージ利用のための登録が必要
# ※docker pull時に「unauthorized: authentication required」が発生するため実行
docker login
# Docker Image のダウンロード
docker pull store/oracle/database-enterprise:12.2.0.1
# ダウンロードした Docker イメージを確認(3.44GBある)
docker image ls
# コンテナ起動
docker run -d -it --name OraOraDB1 -p 9999:1521 store/oracle/database-enterprise:12.2.0.1
# コンテナ内に入る(※下段はrootユーザ)
docker exec -it OraOraDB1 bash
docker exec -u 0 -it OraOraDB1 bash
# 公開されている sys ユーザで SQL*Plus 接続
source /home/oracle/.bashrc
sqlplus sys/Oradoc_db1@ORCLCDB as sysdba
# 作業終了
docker ps -a
docker kill e1f54de08916
docker rm OraOraDB1
【Oracle操作】
下記リンクに記載
◆Oracleお試しコマンド
https://qiita.com/wakasama_pcmaster/items/02a3062170619df0b1f4
【参考サイト】
◆Docker Store から Oracle Database 構築
https://qiita.com/shione/items/3378cfbd44f915834974
◆DOCKER で ORACLE DATABASE 12C を起動して PDB に接続するまで
https://qiita.com/KenjiOtsuka/items/97517fdd3406627cf8a7
◆Docker でOracle試した時に詰まったポイント
https://qiita.com/poruki1010/items/3777035097c069c59656
GROWI
# コンテナアプリケーション起動
cd C:\wakasama\Docker\GROWI
git clone https://github.com/weseek/growi-docker-compose.git growi
cd growi
# v3.5.16辺りのコードに変更
git checkout 218c878
# ★Dockerfileの加工(USER部分削除と/docker-entrypoint.sh実行)
docker-compose build
docker-compose up
# 環境再構築
docker ps -a
# コンテナ削除(growi_app/growi_elasticsearch)
docker rm [CONTAINER ID]
# イメージ削除(growi_app/growi_elasticsearch/mongo(他で使ってなければ...))
docker image ls
docker rmi [IMAGE ID]
docker volume prune
git checkout master
docker-compose build
docker-compose up
# ★環境構築後の動作検証
# ブラウザでGROWIのサイトにアクセス
# http://localhost:3000/
# 環境再構築(★他に影響出そうなので使わないこと!!)
docker-compose down --volumes
docker-compose up --force-recreate
# 一括完全消去コマンド(★他に影響出そうなので使わないこと!!)
docker-compose down --rmi all --volumes
diff --git a/Dockerfile b/Dockerfile
index dbfdce2..997d2fa 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -5,12 +5,14 @@ ENV APP_DIR /opt/growi
# install dockerize
ENV DOCKERIZE_VERSION v0.6.1
-USER root
+
RUN apk add --no-cache --virtual .dl-deps curl \
&& curl -sL https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz \
| tar -xz -C /usr/local/bin \
&& apk del .dl-deps
-USER node
+
+ENTRYPOINT ["/docker-entrypoint.sh"]
+RUN ["chmod", "755", "/docker-entrypoint.sh"]
WORKDIR ${APP_DIR}
【参考サイト】
◆docker-compose | GROWI Docs
https://docs.growi.org/ja/admin-guide/getting-started/docker-compose.html
◆DockerでGrowiをセットアップする
https://qiita.com/hawk777/items/2c87327f6a2d83b4bad7
◆Docker + Growiでイントラ向けWikiを立ち上げる
https://corgi-lab.com/linux/docker-growi-wiki/
◆【GROWI】ページに書いたテキストデータをMongoDBから確認する
https://www.mtioutput.com/entry/growi-mongodb-show
◆docker-composeのvolumeを途中から移動させたら上手く行かなかった
https://anatofuz.hatenablog.com/entry/2020/06/05/090128
◆Dockerのvolumeでpermission deniedが発生した場合の解決法
https://tech-blog.rakus.co.jp/entry/20200826/docker
SonarQube
# 2021/09/25
# フォルダ作成とdocker-compose.yml作成
md C:\wakasama\Docker\SonarQube
notepad docker-compose.yml
# コンテナ起動
docker-compose up -d
# ※まさかの起動失敗したので"-d"なしで起動してログ確認
docker-compose up
# ディストリビューション一覧表示
wsl -l -v
# ログインして値変更
wsl -d docker-desktop
sysctl -w vm.max_map_count=262144
# コンテナ起動(今度は成功!!)
docker-compose up -d
# SonarQubeにアクセス
# http://localhost:9000
# コンテナ停止
docker-compose down
【参考サイト】
◆SonarQubeサクッといじってみた
https://qiita.com/yasumon/items/52702df02aaf6201bf30
◆今更だけどSonarQubeをDockerで動かす
https://qiita.com/ProjectEuropa/items/b9df95e3190b22aaa69f
◆docker-composeでStateがUpにならない(Exitのままになる)原因と対処方法まとめ
https://mrkmyki.com/docker-compose%E3%81%A7state%E3%81%8Cup%E3%81%AB%E3%81%AA%E3%82%89%E3%81%AA%E3%81%84%EF%BC%88exit%E3%81%AE%E3%81%BE%E3%81%BE%E3%81%AB%E3%81%AA%E3%82%8B%EF%BC%89%E5%8E%9F%E5%9B%A0%E3%81%A8%E5%AF%BE
◆WindowsでのDockerのvm.max_map_countの問題
https://www.fixes.pub/program/331248.html
◆sysctl -w vm.max_map_count=262144 in sysctl.conf or .wslconfig
https://stackoverflow.com/questions/69214301/sysctl-w-vm-max-map-count-262144-in-sysctl-conf-or-wslconfig
Redmine
# 指定バージョンのイメージ取得
docker pull sameersbn/redmine:4.1.1-2
# 複数コンテナアプリケーション起動(PostgreSQL/Redmine)
wget https://raw.githubusercontent.com/sameersbn/docker-redmine/master/docker-compose.yml -OutFile docke”-compose.yml
docker-compose up
# ★☆★後で古いバージョン(MySQL/Redmine 3.4.x)を試す
# 指定バージョンのイメージ取得(v3.4.7)
docker pull sameersbn/redmine:3.4.7
# ※「3.4.7」はBranches/Tags
# (github上で対象ブランチもしくはタグを確認すればよい)
wget https://github.com/sameersbn/docker-redmine/raw/3.4.7/docker-compose-mysql.yml -OutFile docker-compose-mysql.yml
docker-compose -f docker-compose-mysql.yml up
【参考サイト】
◆GitHub - sameersbn/docker-redmine: Docker Image for Redmine
https://github.com/sameersbn/docker-redmine
Windows Server
# Windows Serverコンテナ作成&起動(下記で起動確認取れた!!)
docker run -it --name winsvcont01 --isolation=process --rm mcr.microsoft.com/windows/nanoserver:1909 cmd
# ※こちらはまだ未確認...
docker run -it --name winsvcont02 --isolation=process mcr.microsoft.com/windows/servercore powershell
Ubuntu
# Dockerのバージョン確認
# ※[Switch to Lixux/Windows Containers...]設定で切替可能
docker version
# Ubuntuコンテナ作成&起動(--name指定しないと毎回別コンテナ作成)
docker run -it --name ubucont01 ubuntu bash
チューニング
コンテナ移動
【参考サイト】
◆WSL2 Dockerのイメージ・コンテナの格納先を変更したい (WSL2のvhdxファイルを移動させたい)
https://qiita.com/neko_the_shadow/items/ae87b2480345152bc3cb
コンテナ外部にファイル保存
【参考サイト】
◆dockerでコンテナ外部にファイル保存
https://qiita.com/HyunwookPark/items/348e8c793724089f81bd
◆DockerのVolume
https://qiita.com/wwbQzhMkhhgEmhU/items/7285f05d611831676169
◆wslのDockerからWindowsファイルにアクセスする
https://mecobalamin.hatenablog.com/entry/2020/04/22/061851
◆Docker でコンテナにマウントできるボリュームについて
https://blog.amedama.jp/entry/docker-mount-volume
◆Docker のホストとコンテナ間でファイルをやり取りする
https://blog.amedama.jp/entry/2018/01/30/221546
◆dockerでvolumeをマウントしたときのファイルのowner問題
https://qiita.com/yohm/items/047b2e68d008ebb0f001
◆長年日記
http://ogawa.s18.xrea.com/tdiary/20210312p02.html
※ [windows] WSL上のファイルをエクスプローラからアクセスする
※ [windows] Docker Desktop for Windowsでのボリュームの保存場所
\wsl$\docker-desktop-data\version-pack-data\community\docker\volumes
TODO
- 最新状況の整理
- やりたいことを一旦棚卸 ※IIS環境構築とか...
- IIS+ASP.NETを試す ⇒ 試し中...
- 複数アプリ導入を試す
- データ外出しを試す
- CICD環境構築を試す
- K8sを試す
- OpenShiftを試す
参考サイト
◆超基礎からの 速習 Docker (1)
https://qiita.com/Gucchiy/items/16045193baabf3dfa176
◆Dockerコンテナを移行してみる【成功編】
https://qiita.com/Osbrewery/items/57feacd9d1f84f8813aa
◆《滅びの呪文》Docker Composeで作ったコンテナ、イメージ、ボリューム、ネットワークを一括完全消去する便利コマンド
https://qiita.com/suin/items/19d65e191b96a0079417
◆Docker for WindowsでKubernetesを試してみる
https://qiita.com/h-r-k-matsumoto/items/68f694650029ddf7351d
◆Docker Desktop for Windows - マイクロソフト系技術情報 Wiki
https://techinfoofmicrosofttech.osscons.jp/index.php?Docker%20Desktop%20for%20Windows
◆開発者に朗報! Windows 10でWindows Serverコンテナが実行可能に
https://www.atmarkit.co.jp/ait/articles/1902/07/news024.html
◆WindowsでDocker環境を試してみる
https://qiita.com/fkooo/items/d2fddef9091b906675ca
◆Windowsコンテナについて調べてみた
https://qiita.com/tnk4on/items/d95c6394797b46b5fb2b
◆WindowsServerコンテナとは (docker)
https://tyablog.net/2018/04/22/windows-container-of-docker/
◆アーキテクチャー
https://www.ibm.com/support/knowledgecenter/ja/SSBS6K_3.1.0/getting_started/architecture.html
※用語と関連図の大枠を把握するために
◆コンテナログ処理の技術的なベストプラクティス:Dockerを例に挙げる
https://qiita.com/KentOhwada_AlibabaCloudJapan/items/db9e4f1d8ec766d4bbc4
◆コンテナ運用におけるログ基盤設計のベストプラクティス
https://qiita.com/naomichi-y/items/6eeebd21adf8e771a8e7
◆【個人的に】Dockerがはかどる小技
https://qiita.com/schrosis/items/6f0839439dac493ef9e3
◆Docker for Windowsのネットワーク設定
https://techinfoofmicrosofttech.osscons.jp/index.php?Docker%20for%20Windows%E3%81%AE%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E8%A8%AD%E5%AE%9A
◆Dockerひとつでリモートデバッグ可能な開発・本番環境を作る方法
https://qiita.com/sebastianrettig/items/f68b23c150dde419bb96
◆【Docker】docker imageの大きさを小さくする (その1)
https://qiita.com/XPT60/items/7ef151371522bd54b438
◆【Docker】 docker image の大きさを小さくする(その2)
https://qiita.com/XPT60/items/e123fe88ec88a4ac2749