はじめに
業務でAWSとか利用しているとCentOSやらUbuntuやらLinuxなEC2に触れることがあるかと思います。
Windowsを慣れ親しんでいた筆者は、正直言うと触るの怖いんです。
なぜ触るのが怖いのかを考えたところ、圧倒的にLinuxに触れている時間が少ないんです。
そこで、少しでも恐怖を克服しようと思いました。
しかし、LinuxOSを積んだPCなんて手元にありません。
AWSでEC2借りれば良くね?とも思いましたが個人用のAWSアカウント持っていませんし、
AWS良く分からないから変なことしまくって課金とかされたら怖いです。
手軽にやりたいです。。。
そこで思いついたのが、Windows上のDockerでUbuntu18.04を触るです。
※ Ubuntuの本格的な初期設定や使い方とかを紹介する記事ではありません。
※ ようはDockerを使いたかっただけです。
作業環境
OS: Windows 10 Pro
Docker: 19.03.2
紹介する技術
- Chocolatey
- Docker for Windows
Dockerの準備
まずは、Dockerを入れます。
※下記で紹介する導入例はWindows 10 Proのものになります。Windows 10 homeとは手順が異なります。
Windows上でのDockerの導入は色々やり方があります。
ちゃんとインスト―ラをダウンロードして設定していくほうが安全かもしれませんが、
面倒くさがりな筆者はWindows OS向けのパッケージマネージャツールのChocolatey
を使いました。
Chocolatey
があれば、Windowsで使用するようなソフトウェアを楽に管理出来ておすすめです。
choco install xxx
みたいな感じで色々入れることが出来てしまいます。
Node.js
でいうところのnpm
みたいなやつですね!
Chocolatey
のインストールはコマンドプロンプトを管理者権限で開いて、下記のコマンドを実行したらいけました。
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
無事にChocolatey
のインストールが終わったら、再びコマンドプロンプトを管理者権限で開き直して、下記のコマンドでDockerをいれます。
choco install -y docker-for-windows docker-desktop
Dockerのインストールはこれで終わりです。
Docker fow Windowsを使うときはHyper-v
という仮想化システムを有効にする必要があります。
コントロールパネル→windowsの機能の有効化からHyper-V
を有効化にしましょう!
Ubuntu 18.04をDockerで導入しよう
ではDockerを使ってUbuntu 18.04を導入したいと思います。
# Ubuntu18.04のイメージをPullする
PS C:\Users\user\Desktop> docker pull ubuntu:18.04
# PullしたUbuntu18.04から名前をつけてコンテナを作成して起動する
PS C:\Users\user\Desktop> docker run -d -it --name="sample-1" ubuntu:18.04
b1161cc5a712a5c5ec0a233125b2caa7aee6fd099d723d5ff31c1d19174bcb94
# 作成したコンテナにbashで入る
PS C:\Users\user\Desktop> docker exec -it sample-1 bash
root@b1161cc5a712:/#
# コンテナから抜け出す時は上記の状態で「exit」と入力してEnterします。
これだけです。これでUbuntu18.04で気軽に遊ぶ事ができます。
遊び終わったコンテナは下記のように気軽に削除もできます。
# コンテナを止めて削除
PS C:\Users\user\Desktop> docker stop b1161cc5a712a5c5e
PS C:\Users\user\Desktop> docker rm b1161cc5a712a5c5e
dockerコマンドやコマンドオプションについての詳細等はリファレンスを見ればすぐ分かります。
試しに遊んでみる
ではコンテナの中に入って遊んでみます。
Userを追加してみる
# ディレクトリの確認してみる
root@b1161cc5a712:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
# Userがいないのでhome直下にはディレクトリがない
root@b1161cc5a712:/# ls home # まだ空
# Userを追加
root@b1161cc5a712:/# adduser ubuntu
Adding user `ubuntu' ...
Adding new group `ubuntu' (1000) ...
Adding new user `ubuntu' (1000) with group `ubuntu' ...
Creating home directory `/home/ubuntu' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: # passwordを入力
Retype new UNIX password: # passwordを再度入力
passwd: password updated successfully
Changing the user information for ubuntu
Enter the new value, or press ENTER for the default # ネーム等の設定
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
# home直下にubuntuが出来上がっている
root@b1161cc5a712:/# ls home/
ubuntu
# Userを削除してみる(home直下のディレクトリごと)
root@b1161cc5a712:/# deluser ubuntu --remove-home
/usr/sbin/deluser: In order to use the --remove-home, --remove-all-files, and --backup features,
you need to install the `perl' package. To accomplish that, run
apt-get install perl.
# perlパッケージが無いと怒られてしまいました。
# パッケージのアップグレードをしてperlをインストールしてみる
root@b1161cc5a712:/# apt update && sudo apt upgrade -y # けっこう時間かかります
root@b1161cc5a712:/# apt-get install perl
# こんどこそユーザを削除
root@b1161cc5a712:/# deluser ubuntu --remove-home
root@be9946bbfde3:/# ls home # ubuntuディレクトリがなくなりました。
以上になります。
業務には役に立ちませんが、Ubuntu18.04を勉強するのにはちょうど良いかもしれませんね!