参考
sudo dpkg -i docker-ce_17.09.0\~ce-0\~debian_amd64.deb
https://www.glamenv-septzen.net/view/1422
https://i.loveruby.net/ja/rhg/cd/win.html
概要
WSL2 | WSL | VirtualBox | Cygwin | Msys2 | |
---|---|---|---|---|---|
動作条件 | 1903 以降、ビルド 18362 以上 | Windows10なら動くと思う | あまり気にしなくていい | あまり気にしなくていい | あまり気にしなくていい |
Linuxカーネル | あり | なし | あり(LinuxOSを使えば) | なし | なし |
Dockerの実行 | 可能 | 動くけど不具合が多い | 可能 | 不可 | 不可 |
ローカルサービスへの ポートフォワードの必要性 |
不要 .wslconfig に localhostForwarding=True |
不要 | 不要 ホストネットワークのNICを追加して別IPを降る |
不要 | 不要 |
バックアップ(スナップショット) | export、importが可能 | export、importが可能 | スナップショットもバックアップも可能 | ディレクトリ丸ごとコピー | ディレクトリ丸ごとコピー |
Windows実行体のコンパイル | MinGW | MinGW | MinGW | gcc、MinGW | MinGW |
おすすめ | ◎ 動作条件を満たすならこれが一番いい |
X dockerがまともに動作しないのでおすすめしない |
◎ WSL2より起動は遅いけど何かと使いやすい |
○ sshクライアントとかちょっとコンパイルするだけならあり |
○ sshクライアントとかちょっとコンパイルするだけならあり |
Windows上でUnix環境を利用するには大きく2つの方法がある。
- Windows上でLinuxを動作させる
- Windows上でUnix互換環境(UnixのコマンドをWindows用に移植したもの)を使う
個人的にはWSL2が使い勝手が良くて、動作の安定性も高いと思う。
Unix仮想環境
WSL2
WSL
WSL単独でのdockerの動作に問題が多々ある。hello-world程度の簡単なコンテナであれば動作可能。
設定手順
- WSL起動
- 管理者権限でコマンドプロンプトを実行(wslは管理者権限を使わないとdockerサービスが起動しない)
- wsl -d Ubuntu-20.04 -u user
- apt アップデート
- sudo apt update
- docker-ceの設定(最新版だと正常に動作しないので古いものをダウンロードする)
- curl -O https://download.docker.com/linux/debian/dists/stretch/pool/stable/amd64/docker-ce_17.09.0~ce-0~debian_amd64.deb
- sudo dpkg -i docker-ce_17.09.0\~ce-0\~debian_amd64.deb
- dockerグループに追加設定
- sudo gpasswd -a user docker
- ログインしなおす(id で dockerグループが追加されていればOK)
- サービス起動とhello-world実行
- sudo service docker start
- docker run --rm hello-world
Virtualbox
WSL2が使えないときはこちらの方法がおすすめ。
OSのインストールが面倒なときは https://www.osboxes.org/ からイメージをダウンロードする。
Ubuntu Server
- キーボードの設定
- sudo dpkg-reconfigure keyboard-configuration
- SSHを使う場合
- ホストオンリーアダプタを追加して、ホストOSとゲストOSを通信できるようにする必要がある
- ゲストOSの設定画面 -> ネットワーク -> アダプタ2 -> 割当 をホストオンリーアダプタにする
- 起動後にアダプタ2にDHCPを設定する
- sudo vim /etc/netplan/00-installer-config.yaml
- ホストオンリーアダプタを追加して、ホストOSとゲストOSを通信できるようにする必要がある
network: ethernets: enp0s3: dhcp4: true enp0s8: dhcp4: true
- 上記のように追加したデバイスのdhcpを有効にする
- dockerの設定
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
- sudo apt update
- sudo apt install docker-ce docker-compose
- sudo gpasswd -a ユーザ名 docker
- 追加したグループを反映させるためにログオフして、ログインしなおし
- hello-world実行
- docker run --rm hello-world
Unix互換環境
Windows上にUnix互換環境を構築するには、Msys2やCygwinを使う必要がある。
UnixとWindowsではパスの区切文字(\と/)やデバイスの指定方法(c:\Usersと/home)が異なるため、Unix互換ツールを利用するには、その違いを意識せず利用するための仕組み(POSIXエミュレーション)が必要となる。
ツール | 説明 |
---|---|
Cygwin | Unix互換環境として優秀。パッケージも多く、X関連も動作させることができる。 |
Msys2 | Cygwinから派生し、必要なツールを必要最低限使えるようにして、Mingwの利用を目的として作られた。 |
MinGW
WindowsのGCCコンパイラ。POSIXエミュレーションはなく、普通のWindowsアプリケーションであり、パスの指定も通常のパス(c:\data\src\test.c)が使える。
CygwinやMsys2と一緒に使われることが多いが、CygwinやMsys2にもgccが存在するので区別して利用する必要がある。
例えば、Cygwinのgccでコンパイルしたexeの実行には、Cygwin1.dllが必要。
同様にMsys2のgccでコンパイルしたexeの実行には、msys-2.0.dllが必要。
MinGWのgccでコンパイルしたexeの実行は、そのまま実行できるし、内部で利用するパスもWindowsのパス指定が利用できる。
使い分け
個人的には、
ツール | 用途 |
---|---|
Cygwin | Windows上にがっつりUnix互換環境を構築する。またはMsys2で動かなかったものを動かしたい。(WSLや仮想マシンでもいい気がするけど・・・) |
Msys2 | Xとかは必要なく、CUIのUnix互換環境を構築したい。MinGWでWindows上にgccの環境が欲しい。 |
環境設定
Cygwin
Cygwinはアーカイブを展開後すぐに使えるCygwin環境。ただし、2018年以降更新されていない。
gnupack の設定
Msys2
[カテゴリ: OS > Windows][カテゴリ: ツール > Cygwin]
[カテゴリ: ツール > Msys2]
[カテゴリ: 仮想化 > WSL]
[通知用URL]
Tweet
最終更新時間:2021年07月08日 23時03分49秒