Docker (Windows) をユーザー権限で使用する

2021-04-17 | コメント(0)

Docker をインストールする際は、管理者がインストールすると思いますが、Docker を使えるのは、インストールしたその管理者だけになります。

一般ユーザーでログイン中に Docker を使いたい場合、Docker の実行とPowerShellを、わざわざ管理者として実行するのが煩わしいため、一般ユーザーでも Docker を使用できるように権限を付与します。

Docker のインストールは下記参考にしてください

Windows Server 2019 Docker インストール
Windows 10 Docker インストール

また、以降の内容で Windows 10 の動作確認では、WSL2 を有効にしている前提なので、WSL2の導入は次の記事を参考にしてください。

WSL2 インストール (Windows 10でUbuntu)

権限の追加は簡単で、Docker をインストールしていれば、ローカルグループに「docker-users」というグループがあるので、ここに使用させたいユーザーを追加することで Docker の実行権限を与えることができます。

グループのメンバーを編集するには、管理者権限が必要なので Administrator等で行ってください。

Windows グループ docker-users

以下、私自身の一般ユーザーを追加したものです。追加前の初期は Docker をインストールした管理者(Administrator)が含まれている状態になっています。

docker-users グループのメンバー

グループへの追加が反映されるのは、追加したユーザーがログインしたときなので、そのユーザーがログイン中でしたら、一度ログアウトして、再度ログインしなおしてください。

では続いて、追加したユーザー側の動作確認です。

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

Docker Desktop for Windows のバージョン確認

Ubuntuイメージを pull して確認、その後、Ubuntuイメージを削除

# イメージ確認
docker images

# ubuntu:18.04 を pull
docker pull ubuntu:18.04

# イメージ再確認、イメージIDを確認する
docker images

# イメージID 3339fde08fc3 を削除
docker rmi 3339fde08fc3

# イメージ再確認
docker images

Docker で Ubuntu を pull

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 などの環境を作る

Docker で Ubuntu 実行

以上、Linuxコンテナーの Ubuntu で確認しましたが問題無く動作します。

Windowsコンテナーも確認してみます。

タスクバーの Docker アイコンを右クリックして、Windowsコンテナーに切り替えます。

Docker Desktop for Windows タスクメニューの Windows Containers

Docker Desktop for Windows で、Windows Containers へ Switch するときのダイアログ

ホストOSのバージョンは 20H2 なので、NanoServer の 20H2 を pull してみます。

# イメージ確認
docker images

# nanoserver:20H2 を pull
docker pull mcr.microsoft.com/windows/nanoserver:20H2

Docker で NanoServer を pull

nanoserver が pull できました。

nanoserver のイメージを削除してみます。

# イメージ再確認、イメージIDを確認する
docker images

# イメージID ebd662feed3b を削除
docker rmi ebd662feed3b

# イメージ再確認
docker images

Docker の NanoServer を削除

削除も問題ありません。

nanoserver のコンテナーを作成し、cmd.exe を実行。

docker run -it mcr.microsoft.com/windows/nanoserver:20H2 cmd.exe

Docker で NanoServer を実行する

※Windowsコンテナーの場合、画面がクリアされます。

Docker で NanoServer を実行中

nanoserverに入れました。各コマンドも動きます。

これで、一般ユーザーでも Linuxコンテナー / Windowsコンテナーの両方で Docker が使えることが確認できました。

カテゴリ:

コメントする

※HTMLタグは使えません

Author

あきちゃん

主に、.NETでWebシステムの設計と開発をしています。
(茨城県在住, 都内勤務)
プロフィール