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

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が速いと言われてることが実感できた!!
        (これで実感できないと、ちょっとヤバいです…)


Posted by futa