初心者OK！Docker入門＋応用：ゼロからでも実務で使えるスキルが身に付ける

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/181439/1c691d24-b897-8a9e-1cf6-3c17666703a4.png)

**「実はDocker全然ワカラン」** な方、ようこそ。

Dockerを全く触ったことがない！というエンジニアはもはやかなり珍しくなっているのではないでしょうか？

フロントエンドエンジニアでも、バックエンドエンジニアでも、どの領域のソフトウェアエンジニアでもDockerは広く最低限の知識が求められる今日この頃。

そんな中でも、「実はDocker全然ワカラン」な人でも、実践で使える知識を身につけられるようにまとめてみました。

# 対象読者

- Docker の漠然としたイメージはあるが、使ったことがない人
- Docker コマンドを意味を理解せず実行している人
- Docker を勉強したが挫折した人
- Docker を実業務にどうやって活用すればいいかわからない人


# 動画版を Udemy で配信中（クーポンあり）
なお、紹介する内容は以下のUdemyにて動画のコースとして作成・配信しています。

動画の方が理解しやすい！という方も多いと思いますので、ぜひ興味のある方はご覧ください。
動画版では、Dockerの基礎部分だけでなく実際の業務に即したアプリ開発を体験するセクションも用意してあります。


以下リンクからだと割引で買えます。
クーポンは、**「2023/05/01」** まで有効です

https://dockercourse.page.link/coupon-qiita

# コンテンツ
### Dockerとは？
- [Dockerとは？](https://qiita.com/kenny_J_7/items/4accd3bbbf345389adf0)

### Dockerの基本操作を体験する
- [Dockerイメージとは？](https://qiita.com/kenny_J_7/items/ef4a5eb412ff943410e3#docker-%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%E3%81%A8%E3%81%AF)
- [イメージとコンテナのライフサイクル](https://qiita.com/kenny_J_7/items/ef4a5eb412ff943410e3#%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%E3%81%A8%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A%E3%81%AE%E3%83%A9%E3%82%A4%E3%83%95%E3%82%B5%E3%82%A4%E3%82%AF%E3%83%AB)
- [イメージをダウンロード・破棄する](https://qiita.com/kenny_J_7/items/ef4a5eb412ff943410e3#%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%E3%82%92%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89%E7%A0%B4%E6%A3%84%E3%81%99%E3%82%8B)
- [イメージからコンテナを作成・実行する](https://qiita.com/kenny_J_7/items/ef4a5eb412ff943410e3#%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%E3%81%8B%E3%82%89%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A%E3%82%92%E4%BD%9C%E6%88%90%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B)
- [コンテナを停止・再起動する](https://qiita.com/kenny_J_7/items/ef4a5eb412ff943410e3#%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A%E3%82%92%E5%81%9C%E6%AD%A2%E5%86%8D%E8%B5%B7%E5%8B%95%E3%81%99%E3%82%8B)
- [コンテナを破棄する](https://qiita.com/kenny_J_7/items/ef4a5eb412ff943410e3#%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A%E3%82%92%E7%A0%B4%E6%A3%84%E3%81%99%E3%82%8B)
- [新旧Dockerコマンドについて](https://qiita.com/kenny_J_7/items/ef4a5eb412ff943410e3#%E6%96%B0%E6%97%A7docker%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6)

### 以下随時更新


### Dockerコンテナの操作と挙動を深く知る
- Ubuntuをbashで操作してみる
- container run するときの -it オプションを深掘りする
- コンテナ起動時に実行されるコマンドを変更する
- 既存のコンテナにコマンドを実行させる
- コンテナに好きな名前をつける
- コンテナの整理に便利なコマンド
- デタッチドモードとフォアグラウンドモード


### Dockerfileでカスタムイメージを作成する
- Dockerfileとは？
- Dockerfileからイメージを作成する
- イメージに名前をつける
- RUN で任意のコマンドを実行する
- COPYで好きなファイルをイメージに配置する
- ビルドコンテキストを理解する
- dockerignoreを利用する
- CMD でデフォルトコマンドを設定する
- レイヤー構造とは？
- イメージの容量を小さくする
- 意識すべきレイヤー構造の特徴
- ENV で環境変数を設定する
- ARG で任意の変数を扱う
- ARGとENVの使いわけ
- WORKDIR で作業ディレクトリを変更する


### マルチステージビルドを使いこなす
- マルチステージビルドとは？
- マルチステージビルドでイメージサイズ削減をする
- マルチステージビルドで複数環境向けイメージの管理を楽にする


### Dockerとストレージ
- ボリュームの概要と基本のコマンド
- ボリュームでデータを永続化する
- バインドマウントの概要と基本のコマンド
- バインドマウントでデータを永続化する
- ボリュームとバインドマウントの使い分け


### コンテナと接続する
- ホストとコンテナのポートを紐づける
- 実際にポートを紐づける
- Dockerネットワークとは？
- ブリッジネットワークとは？
- ブリッジネットワークに接続する
- ブリッジネットワーク内で通信する
- 実際にブリッジネットワーク内で通信してみる
- ブリッジネットワークでの名前解決
- 作成したブリッジネットワークを削除する