Docker:【チュートリアルやってみた】基本編
目次
はじめに
全体
- チュートリアルに沿いながら、獲得するべき知識を整理しながら記載した
- 流れ
- Dockerが実行環境が整っているか確認して
- Alpine LinuxのDockerイメージをダウンロード
- Dockerにあるlsやpsなどの基本コマンドを使って、何が取得できるか確認
- Dockerのスピード感やできることのイメージを掴む
用語
- Dockerイメージ
- Linuxなどのベースの環境
- Dockerファイルを使ってカスタマイズも可能
(このチュートリアルではやっていない)
- Dockerコンテナ
- Dockerイメージを使って作成
- Dockerイメージが動く環境
- docker runでコンテナ実行できる
前提
- Dockerインストール
- 手順を実行した環境
- OS:Windows11
- Linuxカーネル:WSL2
- ディストリビューション:Ubuntu
- 注意
- 本手順はrootでDockerを起動してテスト
- Docker専用ユーザがいれば適宜読み替えて実行
- 「sudo -u xxx」に読み替えて実行
- Docker専用ユーザにsuして、sudoなしで実行
準備
Dockerセットアップ確認
docker run hello-world
- 「Hello from Docker!」が出力されることを確認
- インストールがまだの場合
- Docker Engineインストール手順
Dockerイメージ入手
sudo docker pull alpine
Using default tag: latest latest: Pulling from library/alpine 59bf1c3509f3: Pull complete Digest: sha256:21a3deaa0d32a8057914f36584b5288d2e5ecc984380bc0118285c70fa8c9300 Status: Downloaded newer image for alpine:latest docker.io/library/alpine:latest
- Docker HUBよりダウンロード
- Alpine LinuxのDockerイメージ
- エラーが発生しなければ問題なし
- alpine:latest
- 「latest」は最新
- pullコマンド実行時にバージョンも指定可能「docker pull alpine:xxx」
- 補足
- image …… Dockerイメージのこと
Linuxのコマンドを実行
コンテナ内の環境でlsコマンド実行
sudo docker run alpine ls -l
total 56 drwxr-xr-x 2 root root 4096 Nov 24 09:20 bin drwxr-xr-x 5 root root 340 Feb 14 10:00 dev drwxr-xr-x 1 root root 4096 Feb 14 10:00 etc drwxr-xr-x 2 root root 4096 Nov 24 09:20 home drwxr-xr-x 7 root root 4096 Nov 24 09:20 lib drwxr-xr-x 5 root root 4096 Nov 24 09:20 media drwxr-xr-x 2 root root 4096 Nov 24 09:20 mnt drwxr-xr-x 2 root root 4096 Nov 24 09:20 opt dr-xr-xr-x 193 root root 0 Feb 14 10:00 proc drwx------ 2 root root 4096 Nov 24 09:20 root drwxr-xr-x 2 root root 4096 Nov 24 09:20 run drwxr-xr-x 2 root root 4096 Nov 24 09:20 sbin drwxr-xr-x 2 root root 4096 Nov 24 09:20 srv dr-xr-xr-x 11 root root 0 Feb 14 10:00 sys drwxrwxrwt 2 root root 4096 Nov 24 09:20 tmp drwxr-xr-x 7 root root 4096 Nov 24 09:20 usr drwxr-xr-x 12 root root 4096 Nov 24 09:20 var
- docker run alpine ls -l
- コンテナ実行するイメージは「alpine」
- コンテナに対して、「ls -l」を実行
- 結果考察
- Dockerを実行している環境ではなくAlpine Linux内でコマンド実行されている
- コマンドがコンテナに引き渡されて結果を出力している
今度はechoコマンドを実行
sudo docker run alpine echo "hello from alpine"
hello from alpine
- docker run alpine echo …
- コンテナ実行するイメージは「alpine」
- コンテナに対して、「echo …」を実行
- 結果考察
- この動作の時に後ろで動いている処理はどうなっているか
- 1.コンテナを開いて
2.その中のOSでコマンドを実行
3.コンテナを閉じる - これらを一瞬でやっている
- Dockerが速いと言われてることが実感できた!!
(これで実感できないと、ちょっとヤバいです…)
- Dockerが速いと言われてることが実感できた!!
