0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

WSL2でUbuntuを立ててSSHでつないでdocker-composeを叩くまで

Last updated at Posted at 2023-10-04

完全に自分用

なんでこれをするのか

最近macの人とかがdocker for macでdockerを動かしているのを見て、やっぱり仮想マシンを動かすのってマシンリソースを酷使しているなって思ったので、「良い感じだよ」って風の噂で聞いたWSL2環境の構築を真剣にやろうと思った次第です。

やる内容

実現したいのは以下

環境

windows 11 Pro 22H2

WSL install

入れるのはUbuntu
やり方は公式さんを参照
https://learn.microsoft.com/ja-jp/windows/wsl/install

って思ったらPowerShellのバージョンが古いと怒られた

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

新機能と改善のために最新の PowerShell をインストールしてください!https://aka.ms/PSWindows

普段PowerShellを使わないので、サクッとmsiでinstallしていきます

気を取り直してinstall

サクッと実行

wsl --install

再起動しやがれって出たので再起動していきます
image.png

ユーザーの作成

再起動をしたら勝手にターミナルが立ち上がってアカウントの作成を求められるので作成
image.png

無事完了しました
image.png

SSHの設定

こちらを参考にしました
https://tech-lab.sios.jp/archives/33655

WSL設定ファイルの作成

中身をみたら普通に書いてあったのでスキップ

$ sudo cat /etc/wsl.conf
[boot]
systemd=true

SSHの起動

とりあえずコマンド打ったら

$ sudo systemctl enable ssh
Failed to enable unit: Unit file ssh.service does not exist.

ないやん・・・
ってわけでinstallします
ついでにパッケージの更新もしておきます

# packageの更新
$ sudo apt -y update
$ sudo apt -y upgrade

# SSHのinstall
$ sudo apt -y install openssh-server

# 起動設定
$ sudo systemctl enable ssh

# 起動
$ sudo systemctl start ssh

# statusの確認をしておく
$ sudo systemctl status ssh
● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2023-10-05 01:48:19 JST; 53s ago
       Docs: man:sshd(8)
             man:sshd_config(5)
   Main PID: 10075 (sshd)
      Tasks: 1 (limit: 19102)
     Memory: 1.8M
     CGroup: /system.slice/ssh.service
             └─10075 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"

Oct 05 01:48:19 GALLERIA-NOTE systemd[1]: Starting OpenBSD Secure Shell server...
Oct 05 01:48:19 GALLERIA-NOTE sshd[10075]: Server listening on 0.0.0.0 port 22.
Oct 05 01:48:19 GALLERIA-NOTE sshd[10075]: Server listening on :: port 22.
Oct 05 01:48:19 GALLERIA-NOTE systemd[1]: Started OpenBSD Secure Shell server.

起動までいったのでsshでlogin出来るように設定の変更をしていきます
鍵認証は使う予定がないので今回はパス

# パスワード認証の有効化
sudo sed -i -e 's/^PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config

# sshdの再起動
sudo systemctl restart ssh

これでlocalマシンのターミナルから

  • host: 127.0.0.1
  • user: 作ったユーザー
  • password: 設定したパスワード

でログインできるようになりました

dockerを立ち上げるまでの設定

sudoの設定

とりあえずパスワード無しでsudoが出来るように設定変更をします
参考
https://www.rough-and-cheap.jp/linux/ubuntu-sudo-without-password/

ただ、defaultだとvisudoで使うエディタが慣れていないnanoで立ち上がってしまうので、先にvimに設定しなおしておきます

$ sudo update-alternatives --config editor
There are 4 choices for the alternative editor (providing /usr/bin/editor).

  Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /bin/nano            40        auto mode
  1            /bin/ed             -100       manual mode
  2            /bin/nano            40        manual mode
  3            /usr/bin/vim.basic   30        manual mode
  4            /usr/bin/vim.tiny    15        manual mode

Press <enter> to keep the current choice[*], or type selection number: 3
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/editor (editor) in manual mode

選択肢を確認して3 を入れてエンターを押したら、visudoで使うエディタがvimに切り替わりました

sudo visudo

sudoの設定を書き換えたら保存して完了です。

dockerのinstallとか

虎の子の初期設定ファイルがあるので適当にコピーして編集して使います

https://github.com/htanaka0828/devbase_for_lamp_template/blob/master/init.sh
不要な記述もそこそこあるので整理してfileを作ったら雑に実行していきます。

#!/bin/sh
sudo curl -fsSL https://get.docker.com/ | sh
sudo usermod -aG docker htanaka0828
curl -L https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-`uname -s`-`uname -m` > docker-compose
sudo mv docker-compose /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo service docker start

sudo apt-get install -y sl zip unzip jq expect

dockerのinstallをしようとすると Docker Desctop for Windowsを使おう! (意訳)と言われますが無視します

pathの疎通のためにログインをし直して、dockerコマンド達が通るかどうか確認しておきます

$ docker -v
Docker version 24.0.6, build ed223bc
$ docker-compose -v
Docker Compose version v2.20.2

通ったのでヨシ!

SSH鍵の設定

githubに登録しているsshファイルを、元の環境からコピーしても良いし新規に登録しても良いし
良い感じに設定、配置したら疎通確認をしておきます

$ ssh -T git@github.com
Hi htanaka0828! You've successfully authenticated, but GitHub does not provide shell access

これで今回やりたかった作業は完了です!

扱いの諸注意

調べたらすぐ出てくるけど念のため

  • hostマシンの起動時には通常はWSL2は起動していません
    • スタートアップに入れておくか Win + Swsl と入力してwslを起動してあげる必要がある
  • hostマシンのエクスプローラーからは \\wsl$ で接続出来ます
    • VSCodeから参照する時にはプラグインを入れても良いしディレクトリ参照でも良さそう
    • リモート扱いになるので許可を出す必要がある
  • Vagrant環境との共存も可能だけどバージョン依存があるみたいなので、うまくいかない人はぐぐって欲しい
    • ちなみにうちのVirtualBoxのバージョンは7.0でした
  • VagrantとWSL2でどっちが軽いかって言われたら体感はそんなに変わらない
    • 気持ちはWSLの方が気楽
      • 何より起動が速い
    • 検証環境がメモリモリモリマシンで、元々Vagrantマシンへの割り当ても潤沢だったせいだと思う
      • 割り当てメモリをどれぐらいにするか問題は仮想環境の難しいところ
    • 比較検証をしている人が世の中にいるのでぜひぐぐってみてください

お疲れさまでした

様々な文献で助けてくださった先人に感謝!
これからも頑張って開発します!

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?