你的浏览器还没开启 Javascript 功能!

WSL + Dockerで汚れない環境を構築する

前提

  • Hyper-V,WSLがすでに有効
  • Microsoft StoreからすでにUbuntuをインストール済み

WSL初期設定

リポジトリミラーを日本に設定

sudo sed -i.bak -e "s/http:\/\/archive\.ubuntu\.com/http:\/\/jp\.archive\.ubuntu\.com/g" /etc/apt/sources.list

プロキシ設定

プロキシを有効or無効に切り替えられるようにする。俺はvim苦手なのでvscodeで編集する。

code ~/.bashrc

~/.bashrcの追記内容

function proxy_on(){
  USERNAME="UserName"
  PASSWORD="PassWord"
  HOST="XXX.XXX.XXX.XX"
  PORT="XX"
  USERDOMAIN="XXX.XX.co.jp"

  # 認証が必要なプロキシ
  PROXY="http://$USERNAME:$PASSWORD@$HOST:$PORT"

  export HTTP_PROXY=$PROXY
  export HTTPS_PROXY=$PROXY
  export FTP_PROXY=$PROXY
  export http_proxy=$PROXY
  export https_proxy=$PROXY
  export ftp_proxy=$PROXY

  export NO_PROXY="localhost,120.0.0.1,$USERDOMAIN"
  export no_proxy="localhost,120.0.0.1,$USERDOMAIN" 

  echo -e "\nProxy-related environment variables set."
}

function proxy_off(){
  variables=("HTTP_PROXY" "HTTPS_PROXY" "FTP_PROXY" "NO_PROXY"\
           "http_proxy" "https_proxy" "ftp_proxy" "no_proxy")

  for i in "${variables[@]}"
  do
    unset $i
  done

  echo -e "\nProxy-related environment variables removed."  
}

反映

source ~/.bashrc

proxy_onproxy_off で切り替えできる。

# プロキシ環境変数あり
proxy_on
env | grep -i proxy

# プロキシ環境変数なし
proxy_off
env | grep -i proxy

ソフトウエア更新

sudoの場合、環境変数が適用できるようにオプション -E をつける。

sudo -E apt -y update
sudo -E apt -y upgrade

日本語環境が必要ならインストールしておく

# 日本語環境インストール
sudo -E apt install language-pack-ja -y

# メッセージを日本語
sudo -E update-locale LANG=ja_JP.UTF-8

# タイムゾーン
# アジア→東京に設定する
sudo -E dpkg-reconfigure tzdata

# Linuxのコマンドのマニュアルも日本語化
sudo -E apt -y install manpages-ja manpages-ja-dev

Docker for Windows導入&設定

docker hubのアカウントを作って、公式からインストーラをダウンロードしてインストールする。
特に迷うことはない。

初期設定

WSLからwindos側のdockerを呼び出すため、expose demon on tcp://localhost:2375 without TLSにチェック

Proxyの設定

docker for windows は Hyper-V の仮想ネットワークスイッチを使っており、proxy serverのhost名を設定しても、名前解決してくれない。なのでproxy serverのIPを設定すること。

  • http://{username}:{password}@{proxy server IP}:{proxy server port}

WSLのdocker導入+docker for windowsを動かす設定

基本公式を参照してください。再インストールに備えてコマンドだけを残しておく

Ubuntuのdockerインストール

公式

sudo -E apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo -E apt update -y
sudo -E apt install docker-ce docker-ce-cli containerd.io -y

WSLからDocker for Windowsのdaemonへ接続できるようにする

echo "export DOCKER_HOST=tcp://localhost:2375" >> ~/.bashrc && source ~/.bashrc

docker-compose

公式

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose