Docker Engine および Docker Compose のインストール
Docker Engine は、コンテナーの作成、実行、削除などの操作を行うためのプラットフォームです。Docker Compose は、複数のコンテナーを定義し、一度に起動するためのツールです。それを使って、使い捨てな開発環境を実現します。 以下の手順に従って、Ubuntu に Docker Engine および Docker Compose をインストールします。
-
Docker Engine のインストール
Ubuntu に Docker Engine をインストール。本家のインストール手順はこちらです。
注意: sudo コマンドの初回使用時には、「Ubuntu の初期設定」で設定したユーザーのパスワードを求められる場合があります。
- インストール用スクリプトをダウンロード
curl -fsSL https://get.docker.com -o get-docker.sh
- スクリプトを実行
sudo sh ./get-docker.sh
注意: 実際にインストールする前に、スクリプトの手順を確認するには、
--dry-run
オプションを使用してください。スクリプトを実行する前に、スクリプトの内容を確認することをお勧めします。操作画面イメージ
下記のように出力されれば成功です。
[sudo] password for appuser: # Executing docker install script, commit: 4c94a56999e10efcf48c5b8e3f6afea464f9108e WSL DETECTED: We recommend using Docker Desktop for Windows. Please get Docker Desktop from https://www.docker.com/products/docker-desktop/ You may press Ctrl+C now to abort this script. + sleep 20 + sh -c apt-get -qq update >/dev/null + sh -c DEBIAN_FRONTEND=noninteractive apt-get -y -qq install ca-certificates curl >/dev/null + sh -c install -m 0755 -d /etc/apt/keyrings + sh -c curl -fsSL "https://download.docker.com/linux/ubuntu/gpg" -o /etc/apt/keyrings/docker.asc + sh -c chmod a+r /etc/apt/keyrings/docker.asc + sh -c echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu jammy stable" > /etc/apt/sources.list.d/docker.list + sh -c apt-get -qq update >/dev/null + sh -c DEBIAN_FRONTEND=noninteractive apt-get -y -qq install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-ce-rootless-extras docker-buildx-plugin >/dev/null + sh -c docker version Client: Docker Engine - Community Version: 27.5.0 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 ================================================================================ To run Docker as a non-privileged user, consider setting up the Docker daemon in rootless mode for your user: dockerd-rootless-setuptool.sh install Visit https://docs.docker.com/go/rootless/ to learn about rootless mode. To run the Docker daemon as a fully privileged service, but granting non-root users access, refer to https://docs.docker.com/go/daemon-access/ WARNING: Access to the remote API on a privileged Docker daemon is equivalent to root access on the host. Refer to the 'Docker daemon attack surface' documentation for details: https://docs.docker.com/go/attack-surface/ ================================================================================
- 今のユーザーを docker グループに追加
sudo usermod -aG docker $USER
- インストール用スクリプトをダウンロード
-
Docker の自動起動設定
Ubuntu 起動時に、Docker が自動起動するように、
~/.bashrc
ファイルに設定を追記します。cat << EOF >> ~/.bashrc # Automatically start the Docker service. sudo /etc/init.d/docker start EOF
-
Docker Compose のインストール
Ubuntu に Docker Compose をインストール
sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose sudo update-alternatives --set iptables /usr/sbin/iptables-legacy sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
下記のように出力されれば成功です。
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 56.8M 100 56.8M 0 0 5678k 0 0:00:10 0:00:10 --:--:-- 4043k update-alternatives: using /usr/sbin/iptables-legacy to provide /usr/sbin/iptables (iptables) in manual mode update-alternatives: using /usr/sbin/ip6tables-legacy to provide /usr/sbin/ip6tables (ip6tables) in manual mode
-
起動確認
Docker Engine の起動確認を行います。
sudo service docker start
Docker Engine のステータスを確認を行います。
q
を入力すると確認のプロセスが終了します。sudo service docker status
下記のように出力されれば成功です。
● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2024-10-07 01:39:12 JST; 19min ago TriggeredBy: ● docker.socket Docs: https://docs.docker.com Main PID: 1707 (dockerd) Tasks: 9 Memory: 23.3M CGroup: /system.slice/docker.service └─1707 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock Oct 07 01:39:11 XXXXXXXX dockerd[1707]: time="2024-10-07T01:39:11.621541113+09:00" level=info msg="Loading containers: start." Oct 07 01:39:11 XXXXXXXX dockerd[1707]: time="2024-10-07T01:39:11.982773484+09:00" level=info msg="Loading containers: done." Oct 07 01:39:12 XXXXXXXX dockerd[1707]: time="2024-10-07T01:39:12.001453932+09:00" level=warning msg="WARNING: No blkio throttle.read_bps_device support" Oct 07 01:39:12 XXXXXXXX dockerd[1707]: time="2024-10-07T01:39:12.001510074+09:00" level=warning msg="WARNING: No blkio throttle.write_bps_device support" Oct 07 01:39:12 XXXXXXXX dockerd[1707]: time="2024-10-07T01:39:12.001516351+09:00" level=warning msg="WARNING: No blkio throttle.read_iops_device support" Oct 07 01:39:12 XXXXXXXX dockerd[1707]: time="2024-10-07T01:39:12.001519672+09:00" level=warning msg="WARNING: No blkio throttle.write_iops_device support" Oct 07 01:39:12 XXXXXXXX dockerd[1707]: time="2024-10-07T01:39:12.001534576+09:00" level=info msg="Docker daemon" commit=41ca978 containerd-snapshotter=false storage-driver=overlay2 version=27.3.1 Oct 07 01:39:12 XXXXXXXX dockerd[1707]: time="2024-10-07T01:39:12.001720657+09:00" level=info msg="Daemon has completed initialization" Oct 07 01:39:12 XXXXXXXX dockerd[1707]: time="2024-10-07T01:39:12.057976730+09:00" level=info msg="API listen on /run/docker.sock" Oct 07 01:39:12 XXXXXXXX systemd[1]: Started Docker Application Container Engine.