Docker をインストールする際は、管理者がインストールすると思いますが、Docker を使えるのは、インストールしたその管理者だけになります。
一般ユーザーでログイン中に Docker を使いたい場合、Docker の実行とPowerShellを、わざわざ管理者として実行するのが煩わしいため、一般ユーザーでも Docker を使用できるように権限を付与します。
Docker のインストールは下記参考にしてください
Windows Server 2019 Docker インストール
Windows 10 Docker インストール
また、以降の内容で Windows 10 の動作確認では、WSL2 を有効にしている前提なので、WSL2の導入は次の記事を参考にしてください。
権限の追加は簡単で、Docker をインストールしていれば、ローカルグループに「docker-users」というグループがあるので、ここに使用させたいユーザーを追加することで Docker の実行権限を与えることができます。
グループのメンバーを編集するには、管理者権限が必要なので Administrator等で行ってください。
以下、私自身の一般ユーザーを追加したものです。追加前の初期は Docker をインストールした管理者(Administrator)が含まれている状態になっています。
グループへの追加が反映されるのは、追加したユーザーがログインしたときなので、そのユーザーがログイン中でしたら、一度ログアウトして、再度ログインしなおしてください。
では続いて、追加したユーザー側の動作確認です。
Windows Server の Docker の場合は、ログイン後にそのまま Windows Server の Docker として使えます。
Windows 10 の Docker Desktop for Windows の場合は、Docker を起動する必要があります。
Docker Desktop for Windows をインストールした管理者の場合には、ログインと同時に Docker が立ち上がり、デスクトップにも Docker のショートカットもありますが、インストールしたユーザーでは無いユーザーの場合は、デスクトップにショートカットが無く、自動的に起動してくれません。このため、スタートメニューから Docker Desktop を実行します。
Docker Desktop 実行後は、普通に Docker が使えます。
但し、Docker で作成するコンテナーで、Webサーバーなどのポートを開けて使う場合には、ファイアーウォールのルール追加になるので、このとき初回に管理者パスワードが求められます。
下記、Docker Desktop for Windows (Windows 10) の 一般ユーザーで、PowerShell から Docker コマンドを使用したところです。
バージョン確認
docker --version docker version
Ubuntuイメージを pull して確認、その後、Ubuntuイメージを削除
# イメージ確認 docker images # ubuntu:18.04 を pull docker pull ubuntu:18.04 # イメージ再確認、イメージIDを確認する docker images # イメージID 3339fde08fc3 を削除 docker rmi 3339fde08fc3 # イメージ再確認 docker images
Ubuntuイメージが pull されている状態から、Ubuntuのコンテナーを作成し、bashにログインして動作確認
※Ubuntuをrunする際、初回にファイアーウォールの警告が出るので管理者パスワードが必要です。
# イメージ確認 docker images # ubuntu:18.04 のコンテナー作成&実行、80,443番ポートを紐付け docker run -it -d -p 8080:80 -p 8443:443 ubuntu:18.04 # コンテナー確認、コンテナーに名前を付けなかったので、コンテナーIDを確認 docker ps -a # Ubuntuの /bin/bash に入る docker exec -it f425a91444d3 /bin/bash
# ホスト名 hostname # アップデート apt update # アップグレード apt upgrade -y # その後は.. # iproute2, curl, nano など最低限なものを入れて、Nginx や PHP, Node.js, WordPress などの環境を作る
以上、Linuxコンテナーの Ubuntu で確認しましたが問題無く動作します。
Windowsコンテナーも確認してみます。
タスクバーの Docker アイコンを右クリックして、Windowsコンテナーに切り替えます。
ホストOSのバージョンは 20H2 なので、NanoServer の 20H2 を pull してみます。
# イメージ確認 docker images # nanoserver:20H2 を pull docker pull mcr.microsoft.com/windows/nanoserver:20H2
nanoserver が pull できました。
nanoserver のイメージを削除してみます。
# イメージ再確認、イメージIDを確認する docker images # イメージID ebd662feed3b を削除 docker rmi ebd662feed3b # イメージ再確認 docker images
削除も問題ありません。
nanoserver のコンテナーを作成し、cmd.exe を実行。
docker run -it mcr.microsoft.com/windows/nanoserver:20H2 cmd.exe
※Windowsコンテナーの場合、画面がクリアされます。
nanoserverに入れました。各コマンドも動きます。
これで、一般ユーザーでも Linuxコンテナー / Windowsコンテナーの両方で Docker が使えることが確認できました。
コメントする