2022年08月25日
PACS_new_onDockerUbuntu------WSL2のUbuntuでDockerを動かす
まず仮想化支援機能の有効化が必要です。
タスクマネージャのパフォーマンスタブで確認。
有効になってなければ、UEFIで設定すること。
1)WSL2でUbuntuをインストール
Windows Terminalを開いたら、
1. WSL2のアップデート
2. Ubuntuのインストール
3. 再起動 (再起動を要求するメッセージが表示された場合)
を行います、コマンドは以下の通りです。
wsl --update
wsl --install -d Ubuntu
shutdown /r
Windows 再起動後、Ubuntuのインストールが始まるのでしばらく待ち、ユーザ名とパスワードを求められるので入力します。
(ユーザ名とパスワードはWindowsとは別物です。同じ物を設定する事もできます)
Ubuntuのターミナルが表示されたら設定終わりです。「exit」します
まず仮想化支援機能の有効化が必要です。
タスクマネージャのパフォーマンスタブで確認。
有効になってなければ、UEFIで設定すること。
1)WSL2でUbuntuをインストール
Windows Terminalを開いたら、
1. WSL2のアップデート
2. Ubuntuのインストール
3. 再起動 (再起動を要求するメッセージが表示された場合)
を行います、コマンドは以下の通りです。
wsl --update
wsl --install -d Ubuntu
shutdown /r
Windows 再起動後、Ubuntuのインストールが始まるのでしばらく待ち、ユーザ名とパスワードを求められるので入力します。
(ユーザ名とパスワードはWindowsとは別物です。同じ物を設定する事もできます)
Ubuntuのターミナルが表示されたら設定終わりです。「exit」します
2)Dockerのインストール
WSL2の準備とUbuntuのインストールが終わったら、Dockerのインストールです。
Windows Teminalを開き、Ubuntuという項目が増えているので、そちらを開きます。
Ubuntuが上手く開かない場合は以下のコマンドで起動します。
wsl -d Ubuntu
Ubuntuが起動したら、公式の手順でインストールを進めます。
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
sudo apt update
sudo apt install -y docker-ce docker-compose-plugin
(ついでにdocker-compose-pluginもインストールする手順になってます。docker compose便利です。)
(環境によってはproxyの設定が必要です。ホストのWindowsでNATされて外に出て行きますが、proxyの設定は引き継がれません)
3)Dockerの起動とコンテナの実行
以下のコマンドでDockerが起動します。
sudo service docker start
ここまで来たら実行環境の準備は完了です。
hello-worldコンテナも動かせるようになっていると思います。
sudo docker run hello-world
4)Dockerの自動起動
Windowsのスタートアップに以下内容のbatファイル(wsl-service-start.bat等で)を置いておくと、Windowsログイン時に自動でDockerサービスが起動されます。
@echo off
wsl -u root -- service docker start
(スタートアップフォルダは「Windows+E」で、アドレスバーに「shell:startup」で開けます)
5)コンテナのproxyの設定
Windows環境のproxy設定がUbuntuには引き継がれない件ですが、コンテナにも引き継がれません。
こちらは、コンテナのENVにhttp_proxy等を設定する方法がありますが、「~/.docker/config.json」に設定しておくと自動設定されるので、runやbuildの際に楽です。
以下がconfig.jsonの設定例です。(proxy.your.domainにはお使いのproxyサーバ名またはIPアドレスを設定してください)
{
"proxies": {
"default": {
"httpProxy": "http://proxy.your.domain:8080",
"httpsProxy": "http://proxy.your.domain:8080"
}
}
}
6)DCM4CHEE関連のイメージを取得する(一行ずつ実行)
sudo docker pull dcm4che/slapd-dcm4chee:2.6.2-27.0
sudo docker pull dcm4che/postgres-dcm4chee:14.4-27
sudo docker pull dcm4che/dcm4chee-arc-psql:5.27.0
sudo docker pull dcm4che/keycloak:18.0.2
sudo docker pull dcm4che/oauth2-proxy:7.3.0
sudo docker pull dcm4che/logstash-dcm4chee:8.3.2-14
sudo docker pull dcm4che/dcm4che-tools:5.27.0
「:」以降はタグなので、その都度最新バージョンを確認する。上記は2022年8月25日のバージョン
7)データボリュームを共有するために必要なフォルダを先に作っておく
cd /var/local
sudo mkdir dcm4chee-arc
cd dcm4chee-arc
sudo mkdir ldap
sudo mkdir slapd.d
sudo mkdir db
sudo mkdir wildfly
8)DCM4CHEEを起動する
最初にdockerのネットワークを作っておく。LDAPとDBなどのリンク用。
sudo docker network create dcm4chee_default
LDAPサーバーを起動
sudo docker run --network=dcm4chee_default --name ldap \
-p 389:389 \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/timezone:/etc/timezone:ro \
-v /var/local/dcm4chee-arc/ldap:/var/lib/ldap \
-v /var/local/dcm4chee-arc/slapd.d:/etc/ldap/slapd.d \
-d dcm4che/slapd-dcm4chee:2.6.2-27.0
389はLDAPポート。
PostgreSQLサーバーを起動
sudo docker run --network=dcm4chee_default --name db \
-p 5432:5432 \
-e POSTGRES_DB=pacsdb \
-e POSTGRES_USER=pacs \
-e POSTGRES_PASSWORD=pacs \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/timezone:/etc/timezone:ro \
-v /var/local/dcm4chee-arc/db:/var/lib/postgresql/data \
-d dcm4che/postgres-dcm4chee:14.4-27
アプリケーションサーバのWildFlyを起動
sudo docker run --network=dcm4chee_default --name arc \
-p 8080:8080 \
-p 8443:8443 \
-p 9990:9990 \
-p 9993:9993 \
-p 11112:11112 \
-p 2575:2575 \
-e POSTGRES_DB=pacsdb \
-e POSTGRES_USER=pacs \
-e POSTGRES_PASSWORD=pacs \
-e WILDFLY_WAIT_FOR="ldap:389 db:5432" \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/timezone:/etc/timezone:ro \
-v /var/local/dcm4chee-arc/wildfly:/opt/wildfly/standalone \
-d dcm4che/dcm4chee-arc-psql:5.27.0
以上のコマンド時にエラーが出たら何かおかしい。
正常に起動すると各コマンド時にハッシュタグのようなものが出力される。
9) テストする
UIにアクセスする。
https://localhost:8443/dcm4chee-arc/ui2
(セキュリティ警告が出たら、ページ内の詳細をみるを開き、危険性を承知で続行する)
10)データを送ってみる。
UbuntuにDcm4cheツールをインストールしてテスト
dcm4che5-5.22.3-bin.zipをダウンロード
https://sourceforge.net/projects/dcm4che/files/dcm4che3/5.22.3/
.bashrcにvimを使ってパスを通す。
テスト
storescu -c DCM4CHEE@arc:11112 path/to/sampledicomdir
UIで送信が成功したか確認
11) 終了する
dockerでコンテナを終了させる。
sudo docker stop ldap db arc
再度立ち上げる場合は、イメージは取得済みなので、以下のコマンドで新規にコンテナが立ち上がる。
sudo docker start ldap db arc
起動していないコンテナ(使わなくなったコンテナ)は削除する。
sudo docker rm -v ldap db arc
バージョンが変わったりして、LDAP、DB、DCM4CHEEなどのイメージごと消す場合は、コンテナを消してから、
sudo docker images
でダウンロードしてあるイメージを見てIDで削除する
sudo docker rmi imagename imagename ...(例)
関連イメージを全部消す
(例)
sudo docker rmi e4160af7ffc1 c3c29e5db43c 147a8751664b
その際はネットワークも消すこと。
sudo docker network rm dcm4chee_default
以上
Web Service URLs
Archive UI: http://
Username Password Role(s)
user user user
admin admin user, admin, auditlog, ADMINISTRATOR
Wildfly Administration Console: http://
DICOM QIDO-RS Base URL: http://
DICOM STOW-RS Base URL: http://
DICOM WADO-RS Base URL: http://
DICOM WADO-URI: http://
IHE XDS-I Retrieve Imaging Document Set: http://
※このブログではブログの持ち主が承認した後、コメントが反映される設定です。