コンテナ型仮想化を実装することで仮想化に関する理解を深める。 プロセスを隔離しその中で簡単なコマンドを実行するところまでを作成した。
https://www.vagrantup.com/downloads
vagrant up
vagrant ssh
以下の動作確認はVM内で実施した。
vagrant ssh
でVirtualBox上の仮想環境に移動できる。
cat /etc/os-release
# --->
# NAME="Ubuntu"
# VERSION="20.10 (Groovy Gorilla)"
# ID=ubuntu
# ID_LIKE=debian
# PRETTY_NAME="Ubuntu 20.10"
# VERSION_ID="20.10"
コマンドはmini-docker
に実装した。
システムコールを用いるため、特権ユーザーで実行する。
sudo su -
cd /vagrant
- イメージの取得
./mini-docker pull <取得したいDockerイメージ名>
# --->
# pulling <registry名>/<image名>:<tag名> ...
# Fetching manifest for <image名>:<tag名>
# Fetching layer: sha256:hogehoge
# Fetching layer: sha256:hugahuga
# 👌 Docker image <image名>:<tag名> has been stored in /var/opt/app/images/library_<image名>_<tag名>
- 取得したイメージの一覧取得
./mini-docker images
# --->
# fetching images
# +-------------------+---------+---------+---------------+
# | name | version | size | path |
# +-------------------+---------+---------+---------------+
# | library/<image> | <tag> | <size> | <path> |
# +-------------------+---------+---------+---------------+
- イメージの実行
./mini-docker run <image名> <command>
# --->
# parent_pid: <親プロセスのPID>
# child_pid: <小プロセスのPID>
# <何かしらの処理>