##質問
Docker内のUbuntuを再起動またはログアウト&再ログインをするコマンドをDockerfileやdocker-composeに記述したいです。理由は、グループの追加を反映させるには、一度ログアウトして再ログインしなおす必要があるからです。
アドバイスなど頂けますと、誠にありがたいです。ご不明な点などございましたら、適宜追記していまいりますので、どうぞよろしくお願い申し上げます。
Dockerfile
1FROM ubuntu:18.04 2 3RUN apt-get update -y && \ 4 apt-get upgrade -y && \ 5 apt-get install -y sudo && \ #ご指摘を受け追記 6 apt-get install -y docker.io --fix-missing && \ 7 apt-get install -y docker-compose --fix-missing 8 9ENV USER tester 10ENV HOME /home/${USER} 11ENV SHELL /bin/bash 12 13# 一般ユーザーアカウントを追加 14RUN useradd -m ${USER} 15# 一般ユーザーにsudo権限を付与 16RUN gpasswd -a ${USER} sudo 17# 一般ユーザーのパスワード設定 18RUN echo "${USER}:test_pass" | chpasswd 19# dockerグループに$USERを追加 20RUN sudo usermod -aG docker $USER
<背景>
【y_shinodaさんのご依頼により追記】
当初Selenium公式のdocker-seleniumに紹介されていたStandalone用(Chrome版)コマンド「docker run -d -p 4444:4444 -v /dev/shm:/dev/shm selenium/standalone-chrome:4.0.0-alpha-7-prerelease-20200826」をWinコマンドプロンプト上で実行したところ、エラー「docker: Error response from daemon: error while creating mount source path '/dev/shm': mkdir /dev/shm: file exists.」が発生しました。とりあえずSeleniumを動作させたくて他のサンプルプログラムを探したところ、Qiita投稿: Docker上でSeleniumとHeadless ChromeとPython3を動かすを発見し、dind環境でなくても良い気がしましたが、Windows上にDockerのUbuntuコンテナがあったのでここで試してみようと考えたのが発端です。rootユーザーでも他ユーザーを作成してこのプログラムを実行してもエラー※「Couldn’t connect to Docker daemon」が出てハマったという経緯となります。
【追記ここまで】
以下の解決手順を試しているときに、最下行のusermodコマンド結果を反映するにはOS再起動が必要だと知ったので。
↓
DockerでCouldn’t connect to Docker daemonが出る場合の原因と解決方法
https://www.virment.com/how-to-fix-couldnt-connect-to-docker-daemon/
<追記>
質問後、同dind環境から "docker run -it --privileged イメージ名" でコマンド実行を試しても同エラーが発生しました。
##環境
Windows 10
Docker Desktop v2.3.0.4(46911)D
Docker Engine v19.03.12
回答1件
あなたの回答
tips
プレビュー