【MacでLinuxを使う】Dockerを使って環境を構築する方法

Docker

【はじめに】

  • 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

インストール後は次のようなアプリケーションが起動します。
Image from Gyazo

今回使う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に作成されたコンテナが表示されます。

Image from Gyazo

起動しているコンテナの情報を確認する

次のコマンドで、起動したコンテナの情報を確認します。

% 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

Image from Gyazo

パスワードを求められるので、「password」と入力してサインインします。

Image from Gyazo

サインイン後にデスクトップ画面が表示されたらリモート接続が完了します。

Image from Gyazo

【注意】

リモート接続での操作が完了し、デスクトップ画面を閉じてコンテナを停止すると次回以降VNC接続ができなくなってしまいます。

次のファイルがコンテナに作成され、VNC接続がロックされてしまうためです。

  • /tmp/.X1-lock
  • /tmp/.X11-unix/X1

Image from Gyazo

次回以降もVNC接続ができるようにするため、リモート接続しているコンテナでターミナルを開き次のコマンドを実行します。

Image from Gyazo

# rm /tmp/.X1-lock
# rm /tmp/.X11-unix/X1
ポイント
  • このコマンドはVNC接続した場合、必ず実行するのを忘れずに行いましょう。
  • もし、コマンド実行を忘れてコンテナを停止した場合、コンテナを削除して新たなコンテナを今回と同じ手順で作成します。

【さいごに】

今回はコンテナ技術である「Docker」を使ってLinux環境の構築方法を紹介しました。
従来の仮想化ソフトウェアを使用する方が、もしかしたら簡単かもしれません。
ですが、コンテナ技術はシステム開発の現場において急速に広まっているため、学ぶ価値があります。
LinuxとDockerを同時に学んで、他の人よりも一歩先に進みましょう。

コメント

タイトルとURLをコピーしました