🎃
Docker入門1)WSL2 Docker 導入手順
WSL2上にDockerをインストールし、サンプルのDockerfileをビルドするまでの手順
前提条件
- WSL2がWindows上にセットアップされており、Ubuntuがインストールされていること。
- 事前準備の参考にした記事:https://note.com/hiro20180901/n/nc798a07485e2
Docker導入手順
-
システムのアップデート
sudo apt update sudo apt upgrade
補足説明
- 目的: システムのパッケージリストを更新し、インストールされているパッケージを最新版にアップグレードします。
-
構成要素:
- sudo: スーパーユーザー権限でコマンドを実行します。
- apt: Ubuntuのパッケージ管理ツールです。
- update: パッケージリストの更新を行います。
- upgrade: 新しいパッケージのバージョンがある場合にアップグレードを行います。
-
Dockerの前提パッケージのインストール
sudo apt install -y apt-transport-https ca-certificates gnupg-agent software-properties-common
補足説明
- 目的: Dockerを安全にインストールするために必要なパッケージをインストールします。
-
構成要素:
- install: 指定したパッケージをインストールします。
- -y: すべてのプロンプトに対して「yes」と自動で答え、手動での確認を省略します。
- apt-transport-https: HTTPS経由でリポジトリにアクセスするために必要です。
- ca-certificates: SSL/TLSのための証明書を管理するために必要です。
- gnupg-agent: GPGの鍵管理を助けるツールです。
- software-properties-common: ソフトウェアのリポジトリを追加・管理するツールです。
-
DockerのGPGキーの取得とリポジトリの追加
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
補足説明
- 目的: Dockerの公式GPGキーを取得して信頼できるソースからパッケージをインストールできるようにし、Dockerのリポジトリをシステムに追加します。
-
構成要素
- curl: URLからデータを転送するためのコマンドラインツールです。
- -fsSL: オプション群で、エラー時に無言で失敗し(-f)、サーバーの指示に従ってロケーションを変更し(-L)、進行状況やエラーメッセージを表示しない(-sS)設定です。
- apt-key add -: ダウンロードしたGPGキーをAPTの信頼できるキーとして追加します。
- add-apt-repository: 新しいリポジトリをシステムに追加します。
- $(lsb_release -cs): 現在のUbuntuのバージョンコード名を出力します。
-
Docker本体のインストールとdocker-composeのインストール
sudo apt install -y docker-ce docker-ce-cli containerd.io sudo apt install docker-compose
補足説明
- 目的: DockerエンジンとCLIツール、さらにdocker-composeをインストールします。
-
構成要素
- docker-ce: Dockerのコミュニティエディションをインストールします。
- docker-ce-cli: Dockerのコマンドラインインターフェイスツールをインストールします。
- containerd.io: Dockerコンテナのランタイムをインストールします。
- docker-compose: 複数のコンテナを定義し、実行するためのツールです。
-
Dockerサービスの開始
sudo service docker start
-
Docker動作確認
sudo docker run hello-world
実行結果(抜粋)
以下のようなレスポンスが返ってくればOK
Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.
-
sudoなしでDockerコマンドを使用
sudo gpasswd -a $USER docker logout
$USERは、自身のユーザ名に置き換え要
補足説明
- 目的: 毎回sudoをタイプするのは面倒なので、Dockerコマンドをsudoなしで利用可能にする。
-
構成要素
- sudo: スーパーユーザー権限でコマンドを実行します。
- gpasswd: グループのメンバーシップを管理するためのコマンドです。
-
-a $USER docker: -a オプションはユーザーをグループに追加します。
- $USERは現在のユーザー名
- dockerはグループ名
- logout: 現在のセッションを終了し、変更を有効にするために必要です。
-
Docker動作確認(sudoなし)
ubuntu
docker run hello-world
sudoなしでも先ほどと同様のレスポンスが返ってくればOK
参考サイト
- https://kondeneenen.com/install_docker_to_wsl2_ubuntu/
- https://zenn.dev/itch/articles/4b432b73c36826
今後やりたいこと
- GitHubからクローンして、Docker build する一連の手順を理解したい。
- Gitのインストール
- GitHubからのクローン手順
- Dockerのビルド手順
- Linux使用経験がほとんどないので、コマンドやファイル操作など、基本的な操作方法を理解したい。
Discussion