#はじめに
「普段Macを使ってるんだけど、用途や目的に応じてUbuntuも使いたいんだよなー…」と思って、デュアルブートやらVirtualBoxやらをトライしてきたんですが、まず手軽にMac上でUbuntuを使うのであれば、Dockerを使うのが良いという結論に至りました!
これまでDockerという名前は聞いたことあるけど、意外とDockerをちゃんと使ったこと無い…というエンジニアは、実は多いんじゃないかと思います!
僕は過去に仕事でDockerを使ったことがあるんですが、割と入社してすぐだったということもあり、Dockerについてよく分からないまま数年経ってしまいました…
ということで今回を機に、【超基本】Dockerコマンド手順書を作って、「Dockerの基本はマスターできた!」と言える状態にしたいと思います!
#1. Dockerイメージの検索
まず始めに、Docker HubにあるOSイメージを検索します。
Docker Hubとは、ユーザーが作成したDockerコンテナを公開したり共有することができるサービスです。
$ docker search ubuntu
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
ubuntu Ubuntu is a Debian-based Linux operating sys… 10214 [OK]
dorowu/ubuntu-desktop-lxde-vnc Docker image to provide HTML5 VNC interface … 366 [OK]
rastasheep/ubuntu-sshd Dockerized SSH service, built on top of offi… 236 [OK]
consol/ubuntu-xfce-vnc Ubuntu container with "headless" VNC session… 197 [OK]
...
#2.Dockerイメージのダウンロード
Docker Hubで公開されているDockerコンテナは、自由にダウンロードして、自分のサーバーにDockerイメージを保存することができます。
$ docker pull ubuntu:18.04
18.04: Pulling from library/ubuntu
7ddbc47eeb70: Pull complete
c1bbdc448b72: Pull complete
8c3b70e39044: Pull complete
45d437916d57: Pull complete
Digest: sha256:6e9f67fa63b0323e9a1e587fd71c561ba48a034504fb804fd26fd8800039835d
Status: Downloaded newer image for ubuntu:18.04
docker.io/library/ubuntu:18.04
#3.保存済みDockerイメージのチェック
自分のサーバーに保存されているDockerイメージを確認します。
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 18.04 775349758637 4 weeks ago 64.2MB
#4.Dockerコンテナのデプロイ
保存済みのDockerイメージを用いて、Dockerコンテナを立ち上げます。
Dockerコンテナをデプロイする際、様々なオプションがあります。
オプションについて詳しく調べたい場合は、下記URLをご参照下さい。
https://docs.docker.com/v17.12/edge/engine/reference/commandline/run/
私が頻繁に使用するオプションは、--name
、-v
、-it
の3つです。
--name
ではコンテナ名を指定することができます。
-v
ではホストOSのディレクトリをゲストOSにマウントすることができます。
つまり、Dockerコンテナから、Mac上で使用している既存フォルダにアクセスできます。
最後に、-it
により、Dockerコンテナに対して擬似端末(pseudo terminal)を割り当てることができます。
Dockerコンテナ上でBashを使用することができるため、これは必須です。
$ docker run --name ubuntu_test1 -v ~/ws:/home/ -it ubuntu:18.04
root@c75e4e2811e0:/#
#5.パッケージのインストール
Linuxでパッケージをインストールする際は、まずアップデートして、その後必要なパッケージをインストールしていきます。
root@c75e4e2811e0:/# apt-get update
Get:1 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]
Get:2 http://archive.ubuntu.com/ubuntu bionic InRelease [242 kB]
...
Get:17 http://archive.ubuntu.com/ubuntu bionic-backports/main amd64 Packages [2496 B]
Get:18 http://archive.ubuntu.com/ubuntu bionic-backports/universe amd64 Packages [4235 B]
Fetched 17.3 MB in 6s (2837 kB/s)
Reading package lists... Done
私はテキストエディタとしてVimを使用するので、下記コマンドでVimを使えるようにしておきます。
同様な手順で、パッケージをインストールしていきます。
root@c75e4e2811e0:/# apt-get install vim
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
...
#6.Dockerコンテナの終了
Dockerコンテナを終了して、ホストOSに戻る場合は、exit
コマンドを使用します。
root@c75e4e2811e0:/# exit
exit
#7.Dockerコンテナの状態チェック
Dockerコンテナの状態を確認する場合は、下記コマンドを使用します。
STATUSより、Dockerコンテナが終了していることも分かります。
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c75e4e2811e0 ubuntu:18.04 "/bin/bash" About a minute ago Exited (0) 13 seconds ago ubuntu_test1
#8.Dockerコンテナの再開
終了したDockerコンテナを再開する場合は、docker start
、docker attach
コマンドを使用します。
デプロイの際に使用したコンテナ名を指定します。
以上の手順に従えば、環境構築済みのDockerコンテナを用いて継続的に開発を行うことができます。
$ docker start ubuntu_test1
ubuntu_test1
$ docker attach ubuntu_test1
root@c75e4e2811e0:/#
#おわりに
【超基本】のDockerコマンド手順書を作成しました。
Dockerの存在は知ってるけど、実際に使ったこと無い!使い方が実はよく分かってない!僕みたいなエンジニアにとって、役立つ記事になるんじゃないかと思ってます!
次はDockerfileの作成、運用方法についてもまとめてみようと思ってます!