KazuProg's notes

技術メモや備忘録などを自由気ままに書き連ねています

Dockerのインストール

作成日: ・ 更新日:

最近いろいろな技術に触れてみたいと思い、Dockerを入れてみたのでそのメモ

公式で配布されているインストールスクリプトを実行

curl -fsSL https://get.docker.com | sh

dockerを実行

普通に実行させようとすると(非rootユーザの場合)権限関連のエラーが発生してしまう

$ docker container ls
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.45/containers/json": dial unix /var/run/docker.sock: connect: permission denied

dockerの実行には以下の3つの方法がある

root権限(sudo)で実行

特権ユーザ、もしくは sudo で実行させることができる

$ sudo docker container ls

しかし、 sudo を使用する場合は毎回つけるのもめんどくさいので、基本的にdockerグループに所属させることがおすすめ

dockerグループへ所属

ユーザをdockerグループに所属させれば、sudoをつけなくても実行することができる

$ sudo usermod -aG docker [user]

※グループを反映させるには再ログインが必要

rootless-setuptoolでユーザに対してインストールする(機能制限あり)

dockerを一般ユーザが使用したい場合は、機能制限はあるが rootless-setuptool を実行することで、使用することができる。

ユーザがログアウトするとコンテナが止まる(?)ため、動作確認程度なら使えるかな?

dockerd-rootlessをインストールする

$ dockerd-rootless-setuptool.sh install

また、環境変数の設定も必要なので、インストールスクリプトの指示通り設定をする

export PATH=/usr/bin:$PATH
export DOCKER_HOST=unix:///run/usr/1000/docker.sock

私の環境では rootless-setuptool 実行時に以下のエラーが発生したため、指示通り uidmap を事前にインストールしてから再度実行した(root権限必要)

$ dockerd-rootless-setuptool.sh install
[ERROR] Missing system requirements. Run the following commands to
[ERROR] install the requirements and run this tool again.

########## BEGIN ##########
sudo sh -eux <<EOF
# Install newuidmap & newgidmap binaries
apt-get install -y uidmap
EOF
########## END ##########

関連記事

参考