LoginSignup
3

More than 1 year has passed since last update.

macでもDocker Desktopなしでいい感じにDocker環境を構築する

Posted at

自分用の構築メモです。

VirtualBox の設定

  1. ホストネットワークマネージャーを作成する

    Untitled.png

  2. 仮想マシンを作成する際にNICをNATホストオンリーアダプターの2つ設定する

    Untitled (1).png
    Untitled (2).png

  3. Ubuntu Server 20.04をインストール

    インストールが始まったら、NICを2つとも切断するとUpdateが失敗するのでインストールが早く終る

Ubuntuの設定

  1. SSHの設定
Ubuntu
sudo sed -i 's/#PubkeyAuthentication/PubkeyAuthentication/g' /etc/ssh/sshd_config
sudo sed -i 's/#AuthorizedKeysFile/AuthorizedKeysFile/g' /etc/ssh/sshd_config
sudo systemctl restart sshd.service

ssh-keygen -t rsa -b 4096 -C "moritalous"
cat ~/.ssh/id_rsa.pub >>  ~/.ssh/authorized_keys
  1. Dockerインストール
Ubuntu
curl -fsSL https://get.docker.com -o get-docker.sh && \
sudo sh ./get-docker.sh && \
sudo usermod -aG docker $USER
  1. VirtualBoxゲストツールインストール
Ubuntu
sudo apt update && \
sudo apt install -y virtualbox-guest-dkms virtualbox-guest-utils && \
sudo usermod -aG vboxsf $USER

# macと同じパスで共有するため
sudo mkdir -p /Users/Shared/VBox

スクリーンショット 2021-10-10 21.38.21 (1).png

macの設定

  1. 鍵でSSHログインする設定
~/.ssh/config
Host Ubuntu-VirtualBox-Docker
  HostName xxx.xxx.xxx.xxx
  User ubuntu
  IdentityFile ~/.ssh/xxxxxxxxxx/id_rsa
  1. Docker Clientをインストール
mac
curl https://download.docker.com/mac/static/stable/x86_64/docker-20.10.9.tgz -o docker-20.10.9.tgz
tar xzvf docker-20.10.9.tgz
sudo xattr -rc docker
mkdir ~/bin
cp -rf docker/* ~/bin/
echo 'export PATH=$PATH:~/bin' >> ~/.zshrc

docker context create vbox --docker "host=ssh://ubuntu@Ubuntu-VirtualBox-Docker"
docker context use vbox

VSCodeの.devcontainerの設定

  • workspaceFolderを追加
  • workspaceMountを追加
  • mountsを追加
  • remoteUserを削除(rootで動くようにする)
.devcontainer
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
// https://github.com/microsoft/vscode-dev-containers/tree/v0.202.1/containers/ubuntu
{
    "name": "Ubuntu",
    "runArgs": ["--init"],
    "build": {
        "dockerfile": "Dockerfile",
        // Update 'VARIANT' to pick an Ubuntu version: hirsute, focal, bionic
        // Use hirsute or bionic on local arm64/Apple Silicon.
        "args": { "VARIANT": "focal" }
    },
// ここから追加
    "workspaceFolder": "/workspace",
    "workspaceMount": "source=workspace,target=/workspace,type=volume",

    "mounts": [
        "source=/Users/Shared/VBox,target=/workspace/VBox,type=bind,consistency=cached"
    ],
// ここまで追加
    // Set *default* container specific settings.json values on container create.
    "settings": {},


    // Add the IDs of extensions you want installed when the container is created.
    // "extensions": [],
    "extensions": []

    // Use 'forwardPorts' to make a list of ports inside the container available locally.
    // "forwardPorts": [],

    // Use 'postCreateCommand' to run commands after the container is created.
    // "postCreateCommand": "uname -a",

    // Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
// rootユーザーで動かす
    // "remoteUser": "vscode"
// rootユーザーで動かす
}

VirtualBoxの起動(コマンドラインでヘッドレス)

mac
VBoxManage startvm Ubuntu20.04-docker --type headless

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
3