从VirtualBox到VSCode的容器连接

VirtualBoxとは既存のOS上で、別のOSを実行するのに使う仮想環境(仮想マシン)を構築するためのオープンソースソフトウェア

只为了构建虚拟环境,容器等都不相关。

Docker MachineとはDocker Machine は仮想マシン上に Docker Engine をインストールするツールであり、 docker-machine コマンドを使ってホストを管理します

仮想マシン上にDockerをホストを作成しDockerを使えるようにするもの。
また、仮想マシン上にあるDockerコンテナを操作するもの。

创建一个假想机器,假设已经安装了VirtualBox并在其上安装了Docker引擎的前提下,命令如下:

docker-machine create --driver virtualbox vir_machine 
//vir_machineがvirtualbox上に作成される
//--driverのオプションを省略した場合はデフォルトの仮想環境が選択される

以下主なコマンドと説明

1. `docker-machine create <name>` - 新しいDocker Machineを作成します
2. `docker-machine start <name>` - Docker Machineを起動します
3. `docker-machine stop <name>` - Docker Machineを停止します
4. `docker-machine restart <name>` - Docker Machineを再起動します
5. `docker-machine rm <name>` - Docker Machineを削除します
6. `docker-machine ls` - 現在あるDocker Machinesを一覧表示します
7. `docker-machine env <name>` - Docker Machineの環境変数を出力します
8. `docker-machine ssh <name>` - Docker MachineにSSH接続します
9. `docker-machine ip <name>` - Docker MachineのIPアドレスを出力します
10. `docker-machine inspect <name>` - Docker Machineの詳細情報をJSON形式で出力します
11. `docker-machine scp <source> <destination>` - Docker Machine間でファイルをコピーします
12. `docker-machine upgrade <name>` - Docker Machineをアップグレードします

作成した仮想マシン上のDockerホストの情報(tcpアドレスなど)の確認&シェルへの設定

docker-machine env my-docker-machine
eval $(docker-machine env my-docker-machine)

以下是使用chatGPT输出的docker-machine env示例。

# 例えばmy-docker-machineコマンドが出力する可能性がある内容
$ docker-machine env my-docker-machine

# Docker環境変数を設定するexportコマンドの群れ
# DOCKER_TLS_VERIFY - Docker hostと通信する際にTLS検証を有効化するかどうかを指示する
export DOCKER_TLS_VERIFY="1"

# DOCKER_HOST - Docker daemonへの接続情報を含む
export DOCKER_HOST="tcp://192.168.99.100:2376"

# DOCKER_CERT_PATH - TLS認証に使用する証明書のパス
export DOCKER_CERT_PATH="/Users/user/.docker/machine/machines/my-docker-machine"

# DOCKER_MACHINE_NAME - 現在選択されているDocker Machineの名前
export DOCKER_MACHINE_NAME="my-docker-machine"

从这里开始是在终端上的操作。从这里开始是在VSCode上的操作。

使用VSCode的Dev Container扩展功能创建和连接容器,将虚拟机信息记录在settings.json中(通过env输出的内容)。