【はじめに】
- Linuxを勉強し始めたばかりなので、コマンドを実際に練習してみたい
- 普段のPC操作からLinuxに慣れていきたい
- 仮想環境の構築方法がたくさんあって、どの方法が良いのか分からない
Linuxの学習をしている方が環境構築のために使用する代表的な仮想化ソフトウェアとしては、「VirtualBox」や「VMWare」などが有名です。
しかし、「他の人よりテクノロジー技術に触れて一歩先に進みたい」というような気持ちがあれば、「コンテナ技術」を使ったLinuxの環境構築を考えてみるのも良いでしょう。
今回はコンテナ技術である「Docker」を使ってLinux環境の構築方法を紹介します。
※「仮想環境」や「コンテナ技術」についての解説は省略します。
【実際にDockerを使ってLinux環境を構築してみる】
Docker DeskTopをインストールする
Docker Desktopは、MacやWindows環境において、インストールが簡単なアプリケーションです。
次のような機能が、デフォルトで含まれているので難しいコマンドを実行してソフトウェアをインストールする必要がありません。
「Docker Desktopの概要、インストール方法がこちらから」
https://docs.docker.jp/desktop/index.html
今回使うDockerイメージ
今回はLinuxの中でも、Debian系の「Ubuntu」をDockerイメージとして使います。
イメージとは、Dockerコンテナの実行に必要なパッケージ(ファイルやメタ情報の集合)です。
コマンドの練習だけではなく普段使いとしてLinux操作をしていきたい方向けに、GUIとしてデスクトップ環境も構築していきます。
そして、自身のPCから「VNC(Virtual Network Computing)」を使用してコンテナに対しリモート接続して操作をします。
「今回使用するイメージについてはこちら」
https://hub.docker.com/r/queeno/ubuntu-desktop/
早速、Dockerイメージをインストールしてみる
私は、MacユーザなのでMacBookでの操作で説明していきます。
※Windowsの方も操作はほぼ同じなので置き換えてみてください。
次のコマンドを自身のPCのターミナルで実行する
% docker pull queeno/ubuntu-desktop
コマンドの後に次のような表示がされます。
Using default tag: latest
latest: Pulling from queeno/ubuntu-desktop
aed15891ba52: Pull complete
773ae8583d14: Pull complete
d1d48771f782: Pull complete
cd3d6cd6c0cf: Pull complete
8ff6f8a9120c: Pull complete
12600526efbe: Pull complete
da755fb9c9ac: Pull complete
1c3b5cd65abb: Pull complete
e6f482d5c53e: Pull complete
Digest: sha256:2415f147541df23b28f3ab59534aee304299025493539b7246443ef259855a95
Status: Downloaded newer image for queeno/ubuntu-desktop:latest
イメージがインストールされたか確認する
% docker images
「queeno/ubuntu-desktop」というレポジトリが作成されていればインストールが完了しています。
REPOSITORY TAG IMAGE ID CREATED SIZE
queeno/ubuntu-desktop latest 9782c71c14b7 5 years ago 1.15GB
イメージを起動する
次のコマンドを実行してDockerイメージを起動します。
% docker run -itd -p 5901:5901 --name ubuntu-desktop --hostname ubuntu:remote queeno/ubuntu-desktop
ポイント
- -p 5901:5901は自身のPCとコンテナがそれぞれ、ポート番号「5901」を使用してVNC接続するように指定します。
- –nameは起動するコンテナに対して名前を指定します。
- –hostnameはコンテナを実行する際のホスト名を指定します。
- 最後に「queeno/ubuntu-desktop」とすることで、使用するイメージを指定します。
コマンド実行後はコンテナに対してIDが付与されます。
3b3ff716a484eec0f27b2c7320b43cf3212c9a6bcd4a2179070b01596c8e33e2
また、Docker Desktopに作成されたコンテナが表示されます。
起動しているコンテナの情報を確認する
次のコマンドで、起動したコンテナの情報を確認します。
% docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3b3ff716a484 queeno/ubuntu-desktop "/bin/sh -c '/usr/bi…" 13 seconds ago Up 12 seconds 0.0.0.0:5901->5901/tcp ubuntu-desktop
MacからVNC(Virtual Network Computing)を使ってリモート接続する
Finderの「移動」から「サーバへ接続」を選択する
自身のPCで「Finder」を開きます。
次のように、サーバ名を入力して「接続」をクリックします。
vnc://hocalhost:5901
パスワードを求められるので、「password」と入力してサインインします。
サインイン後にデスクトップ画面が表示されたらリモート接続が完了します。
【注意】
リモート接続での操作が完了し、デスクトップ画面を閉じてコンテナを停止すると次回以降VNC接続ができなくなってしまいます。
次のファイルがコンテナに作成され、VNC接続がロックされてしまうためです。
- /tmp/.X1-lock
- /tmp/.X11-unix/X1
次回以降もVNC接続ができるようにするため、リモート接続しているコンテナでターミナルを開き次のコマンドを実行します。
# rm /tmp/.X1-lock
# rm /tmp/.X11-unix/X1
ポイント
- このコマンドはVNC接続した場合、必ず実行するのを忘れずに行いましょう。
- もし、コマンド実行を忘れてコンテナを停止した場合、コンテナを削除して新たなコンテナを今回と同じ手順で作成します。
【さいごに】
今回はコンテナ技術である「Docker」を使ってLinux環境の構築方法を紹介しました。
従来の仮想化ソフトウェアを使用する方が、もしかしたら簡単かもしれません。
ですが、コンテナ技術はシステム開発の現場において急速に広まっているため、学ぶ価値があります。
LinuxとDockerを同時に学んで、他の人よりも一歩先に進みましょう。
コメント