1
2

More than 5 years have passed since last update.

Docker for Windowsでデスクトップをマウントしたbashを起動したい

Last updated at Posted at 2017-12-16
  • Docker for Windowsで手早くLinux環境を実行したい。
  • デスクトップを/desktopにマウントしてUbuntu Xenialを起動したい。
  • Windows側ではdocker for Windowsとcmd.exeのみ使う。

まずはコマンドプロンプトを開いて、デスクトップに移動します。

> cd %HOMEPATH%\Desktop

現在のパスをDocker for Windows用に変換します。手書きで書き換えるのは面倒なのでAlpine Linuxのsedを使います。

> cd | docker run -i --rm alpine:latest sed -e s#\\#/#g -e s#\(.\):#/\1#g
/C/Users/username/Desktop

ユーザ名が英語でスペースがないならば、/C/Users/%USERNAME%/Desktop でもいけそうです。

Docker run を実行します

> docker run --rm -it -v /C/Users/%USERNAME%/Desktop:/desktop -w /desktop ubuntu:xenial bash
# ls -al
# exit

日本語ファイル名が文字化けするので、ロケールなどを設定したDockerfileをつくって起動します。
ローカルタイムをJSTに、ミラーを理化学研究所に、ロケールをen_US.UTF-8にしています。
コマンドプロンプトでは type con > filename で標準入力の内容をfilenameに保存できます。CTRL+Cで終了。
イメージ名は myenv としました。

コマンドプロンプト

> mkdir myenv
> cd myenv
> type con > Dockerfile
以下のDockerfileの内容をペーストしてCTRL+C

Dockerfile

FROM ubuntu:xenial
RUN set -xe && \
    rm /etc/localtime && \
    ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime && \
    echo 'Asia/Tokyo' > /etc/timezone && \
    sed -i.bak 's#http://archive.ubuntu.com/ubuntu#http://ftp.riken.go.jp/Linux/ubuntu#g' /etc/apt/sources.list && \
    apt-get update && \
    DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
    locales && \
    sed -i '/^# en_US.UTF-8 UTF-8/s/^# //' /etc/locale.gen && \
    locale-gen && \
    update-locale LANG=en_US.UTF-8
ENV LC_ALL en_US.UTF-8

コマンドプロンプト

> docker build -t myenv .
> docker run --rm -it -v /C/Users/%USERNAME%/Desktop:/desktop -w /desktop myenv bash
# ls -al
# exit

日本語ファイル名が文字化けせず表示されました。
bash中心の作業環境構築ならば、WSLなどをつかったほうがよいかもしれません。

1
2
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
2