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)で実行
- dockerグループに所属
- rootless-setuptoolでユーザに対してインストールする(機能制限あり)
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 ##########