Windowsコンテナを触ってみる

# はじめに
最終目標は違うところにあるのですが、もともとDockerってどんなものなのかを試してみたかったので勉強も兼ねて...
※状況がどんどん変わっていっているみたいなので、最新状況は定期的に追っかけないとだめそうだ...ただ、始めるタイミングは良かった模様

と思っていたら、Docker Desktop有料化のニュースが...
　◆Docker Desktop有料化の影響
　　https://qiita.com/autotaker1984/items/284e28f82fc1828da44e
　◆Docker Desktopに依存しない、WindowsでのDocker環境
　　https://qiita.com/ohtsuka1317/items/617a865b8a9d4fb67989


# 基本コマンド
```shell:command.bat

# イメージ情報表示
> 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
```powershell:Startup_Angular.ps1
# 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
```powershell:Startup_DotNetApp.ps1
# 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 でコンソールアプリケーションのコンテナを作る手順（シリーズその１）
　　https://qiita.com/yoshiwatanabe/items/f3645790bb6fb94099a1
　◆Docker for WindowsでIISウェブサイトの開発環境を作る手順（シリーズその２）
　　https://qiita.com/yoshiwatanabe/items/a903f7855e8f1f014018
　◆Docker for Windowsを使ってイメージをHubにプッシュする手 順（シリーズその３）
　　https://qiita.com/yoshiwatanabe/items/b97b6bf6bfd5d5f2ddaf
　◆Docker for Windows でDockerが管理するボリュームをマウントする手順（シリーズその４）
　　https://qiita.com/yoshiwatanabe/items/aecc5fbef962d081d0f0
　　　※順番に実施して最後は自分が配置したいプロジェクトでお試し!!

## Jupyter Notebook
### Tensorflow
```powershell:Tensorflow.ps1
# 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
```powershell:Kubernetes.ps1
# [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
```powershell:Jenkins.ps1
# 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)
```powershell:Startup_ASPNet.ps1
# 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
```powershell:Oracle.ps1

#  ※事前に[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

【A5M2設定】
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88262/3d1cc5bc-8406-b35a-7793-04be77c5d8dd.png)

【参考サイト】
　◆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
```powershell:GROWI.ps1
# コンテナアプリケーション起動
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
```
```shell:Dockerfile
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
```powershell:SonarQube.ps1
# 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
```powershell:Redmine.ps1
# 指定バージョンのイメージ取得
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
```powershell:WindowsServer.ps1
# 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
```powershell:Ubuntu.ps1
# Dockerのバージョン確認
#  ※[Switch to Lixux/Windows Containers...]設定で切替可能
docker version

# Ubuntuコンテナ作成＆起動(--name指定しないと毎回別コンテナ作成)
docker run -it --name ubucont01 ubuntu bash
```
# チューニング
## コンテナ移動
```powershell:moveImage.ps1

```
【参考サイト】
　◆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 の大きさを小さくする(その２)
　https://qiita.com/XPT60/items/e123fe88ec88a4ac2749