概要
LinuxOS において,プロセス管理,プロセススケジューラ,メモリ管理など、OS とハードウェアに関する仕組みを体系的に解説している、 [試して理解] Linuxの仕組み 、という書籍の中では様々な実験が行われています。ローカル環境に依存せず、誰でも簡単に実験環境を構築をすることが本記事の目的です。
この記事の対象読者
- [試して理解] Linuxの仕組み を使って、Linuxの勉強をしたい人
- Dockerの基本的なコマンドを扱える人
- MacOS や Windows 上でLinux環境を構築する必要がある人
- Linuxを使っているが、特定のバージョンで上記の書籍の実験を行いたい人
Dockerfile
FROM ubuntu:22.04
# コンテナ内のタイムゾーン
ENV TZ=Asia/Tokyo
RUN apt update && apt install sudo
# 上記のタイムゾーンを設定する
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN sudo apt update
RUN sudo apt install binutils build-essential golang sysstat python3-matplotlib python3-pil fonts-takao fio qemu-kvm virt-manager libvirt-clients virtinst jq docker.io containerd libvirt-daemon-system strace -y
RUN sudo adduser `id -un` libvirt
RUN sudo adduser `id -un` libvirt-qemu
RUN sudo adduser `id -un` kvm
タイムゾーン設定の必要性
書籍内の実験に必要なライブラリをインストールする際、使用タイムゾーンの入力を求められます。
この手動入力を回避するため、Dockerfile内にてタイムゾーン設定するコマンドを記述しています。
Docker コマンド例
Docker イメージのビルド
docker build . -t linux-practice
Docker コンテナの作成とディレクトリのマウント
docker run -p 5050:5050 -v $(pwd):/linux-practice -it linux-practice