LoginSignup
1
9

More than 1 year has passed since last update.

Docker DesktopでWindows環境(+Python)を利用する

Last updated at Posted at 2021-07-07

はじめに

部署内で使っていたアプリがPythonスクリプトだった(=Python環境がないと動かない)ので、Pyinstallerでexe化することにした。
が、Anaconda環境だったためエラー出まくり、できたファイルは500MBオーバーということに。

【悲報】PyInstallerさん、300MBのexeファイルを吐き出すようになる

↑で紹介されている事象を一通り経験したので、クリーンなWindows環境を求めて、Docker DesktopでWindows環境を立てることにした。

前提

  • ホストOS:Windows10
  • Docker Version:v20.10.6

Docker Desktopをインストールする

Docker DesktopからインストールすればOK。

参考:
【入門】はじめての Docker Desktop for Windows のインストールと CentOS の仮想環境構築のセットアップ

Windows Containerへの切り替え

インストールしたままでDockerイメージを作成しようとすると、Linux環境が構築されることになるので、モードの切り替えが必要。
タスクトレイのDocker Desktopアイコンを右クリックし、Windowsモードに切り替える。
2021-06-28 (2).png

Dockerイメージを取得する

Pythonイメージを取得

Pythonのイメージを入れて起動するだけで、空のWinsows環境にPyhtonが入った状態で起動できる。
コマンドプロンプトで以下のコマンドを入力すればOK。

> docker pull python

Windowsコンテナを起動

Pullしたイメージを選択

Docker Desktopの「Images」を開き、取得したPythonイメージを選択し、「Run」を選択する。
2021-07-07.png

コンテナ名、ボリュームを設定

設定ダイアログで、コンテナ名とボリュームの結び付けを行う。(Portの設定は不要)
Host PathにホストOSの利用したいフォルダのパスを設定すると、Container Pathに設定したフォルダを開いたときにHost Pathの内容が見られるようになる。
コンテナ上で既存ファイルを操作したい場合は必ず設定しておく。
2021-06-28 (3).png

コンテナを起動

設定ダイアログでRunを押すと、Pythonが入った状態のWindowsコンテナが起動する。
スクリーンショット 2021-07-07 171637.jpg

pipをインストールしておく

そのままだとPythonの最小限のパッケージしか入っていない状態。パッケージが必要になる都度pipでインストールしていくことになるので、pipをインストールしておく。

参考:
pipの使い方とインストール

Windowsイメージの取得・起動も可能

以下のイメージを取得すると、Windowsイメージの起動ができる。
何も入っていない(=諸々インストールが大変)のにサイズが14GBもあるが…

> docker pull mcr.microsoft.com/windows:2004

Tagの指定

Dockerイメージを取得する際にTagの指定をしない(「:2004」をつけない)と、latestを取りに行って取得できないので注意。

> docker pull mcr.microsoft.com/windows
Using default tag: latest
Error response from daemon: manifest for mcr.microsoft.com/windows:latest not found: manifest unknown: manifest tagged by "latest" is not found

参考:
Windows コンテナを動かしてみる

1
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
9