昔は大嫌いだった,コンテナ.
不安定だし,遅いし,挙動が掴めないし.
それが,今は,当たり前になってしまっている.
が,日頃,開発しない私にとっては,たまにしか触れないもので,そのたびに,あれ? あれ? あれ? ってなっていて,そのたびにググるものの,なんか以前のサイトを違う,ってことになり戸惑う.
なので,今回,Ubuntu24環境にDocker環境を作ったついでに備忘録としてアップしておく.
ついでなので,和訳も併記した(部分的だが).
—– part1
Install using the apt repository(aptリポジトリを使ってインストールする)
Before you install Docker Engine for the first time on a new host machine, you need to set up the Docker repository. Afterward, you can install and update Docker from the repository.
(新しいホストマシンに初めてDocker Engineをインストールする前に、Dockerリポジトリをセットアップする必要がある。その後、リポジトリからDockerをインストールしたりアップデートしたりできます。)
Set up Docker’s apt repository.
(Dockerのaptリポジトリをセットアップします)
# Add Docker’s official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
Note
If you use an Ubuntu derivative distro, such as Linux Mint, you may need to use UBUNTU_CODENAME instead of VERSION_CODENAME.
(Linux MintのようなUbuntu派生ディストロを使っている場合、VERSION_CODENAMEの代わりにUBUNTU_CODENAMEを使う必要があるかもしれません)
Install the Docker packages.(Dockerパッケージをインストールします)
Latest Specific version(特定の最新バージョン)
To install the latest version, run:(最新バージョンをインストールするには、以下を実行します)
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Verify that the Docker Engine installation is successful by running the hello-world image.
(hello-worldイメージを実行して、Docker Engineのインストールが成功したことを確認する。)
sudo docker run hello-world
This command downloads a test image and runs it in a container. When the container runs, it prints a confirmation message and exits.
(このコマンドはテスト・イメージをダウンロードし、コンテナ内で実行する。コンテナが実行されると、確認メッセージを表示して終了する。)
You have now successfully installed and started Docker Engine.
(これでDocker Engineのインストールと起動は完了です)
Tip
Receiving errors when trying to run without root?
The docker user group exists but contains no users, which is why you’re required to use sudo to run Docker commands. Continue to Linux postinstall to allow non-privileged users to run Docker commands and for other optional configuration steps.
(rootなしで実行しようとするとエラーが出ますか?
dockerユーザーグループは存在しますが、ユーザーを含んでいないため、Dockerコマンドを実行するにはsudoを使用する必要があります。非特権ユーザがDockerコマンドを実行できるようにするためや、その他のオプションの設定手順については、Linux postinstallに進んでください。)
—–
—– part2
Manage Docker as a non-root user(非rootユーザーとしてDockerを管理する)
The Docker daemon binds to a Unix socket, not a TCP port. By default it’s the root user that owns the Unix socket, and other users can only access it using sudo. The Docker daemon always runs as the root user.
(DockerデーモンはTCPポートではなくUnixソケットにバインドします。デフォルトでは、Unixソケットを所有するのはrootユーザーで、他のユーザーはsudoを使ってのみアクセスできます。Dockerデーモンは常にrootユーザーとして実行されます。)
If you don’t want to preface the docker command with sudo, create a Unix group called docker and add users to it. When the Docker daemon starts, it creates a Unix socket accessible by members of the docker group. On some Linux distributions, the system automatically creates this group when installing Docker Engine using a package manager. In that case, there is no need for you to manually create the group.
(dockerコマンドの前にsudoを付けたくない場合は、dockerというUnixグループを作成し、そこにユーザーを追加する。Dockerデーモンが起動すると、dockerグループのメンバーがアクセスできるUnixソケットが作成される。一部のLinuxディストリビューションでは、パッケージマネージャを使ってDocker Engineをインストールする際に、システムが自動的にこのグループを作成する。その場合、手動でグループを作成する必要はありません。)
Warning(警告)
The docker group grants root-level privileges to the user. For details on how this impacts security in your system, see Docker Daemon Attack Surface.
(dockerグループは、ユーザーにルートレベルの権限を付与します。これがシステムのセキュリティにどのように影響するかについては、Docker Daemon Attack Surfaceを参照してください。)
Note
To run Docker without root privileges, see Run the Docker daemon as a non-root user (Rootless mode).
(root権限なしでDockerを実行するには、非rootユーザーとしてDockerデーモンを実行する(ルートレスモード)を参照してください。)
To create the docker group and add your user:(docker グループを作成し、ユーザーを追加します)
Create the docker group.(dockerグループを作成します)
sudo groupadd docker
Add your user to the docker group.(ユーザーをdockerグループに追加します)
sudo usermod -aG docker $USER
Log out and log back in so that your group membership is re-evaluated.
If you’re running Linux in a virtual machine, it may be necessary to restart the virtual machine for changes to take effect.
(ログアウトしてログインし直すと、グループメンバーシップが再評価されます。
仮想マシンで Linux を実行している場合、変更を有効にするために仮想マシンを再起動する必要があるかもしれません)
You can also run the following command to activate the changes to groups:
(以下のコマンドを実行してグループの変更を有効にすることもできます)
newgrp docker
Verify that you can run docker commands without sudo.(sudo なしで docker コマンドを実行できることを確認する)
docker run hello-world
This command downloads a test image and runs it in a container. When the container runs, it prints a message and exits.
(このコマンドはテストイメージをダウンロードし、コンテナで実行する。コンテナが実行されると、メッセージを表示して終了する。)
If you initially ran Docker CLI commands using sudo before adding your user to the docker group, you may see the following error:
(ユーザーを docker グループに追加する前に、sudo を使用して Docker CLI コマンドを実行した場合、次のようなエラーが表示されることがあります)
WARNING: Error loading config file: /home/user/.docker/config.json -stat /home/user/.docker/config.json: permission denied
This error indicates that the permission settings for the ~/.docker/ directory are incorrect, due to having used the sudo command earlier.
To fix this problem, either remove the ~/.docker/ directory (it’s recreated automatically, but any custom settings are lost), or change its ownership and permissions using the following commands:
(この問題を解決するには、~/.docker/ディレクトリを削除するか(自動的に再作成されるが、カスタム設定は失われる)、以下のコマンドを使って所有権とパーミッションを変更してください)
sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "$HOME/.docker" -R
—–