Docker Linux Ubuntu

Ubuntu 16.04 LTS でのDocker実行環境(docker-engine + docker-compose)の構築

投稿日:

今回は、Ubuntu 16.04 LTS でのDocker実行環境の構築を行います。

背景

VPSをレンタルしてLinuxサーバを立てました。Webサーバやチケット管理サービス等を動作させる予定ですが、そのまえに各サービスの実行環境を構築します。要件は以下です。

  • 導入が簡単であること
  • Ubuntu内部を不用意に汚さないこと
  • 移植・バックアップ及び復元が簡単なこと

これらの要件に対し、今回はDockerを導入して対応していきたいと考えました。

  • 導入が簡単であること→Docker実行環境さえあれば、イメージをダウンロードするだけで起動できる
  • Ubuntuの内部を不用意に汚さないこと→ホスト環境は汚れない。汚れるのはコンテナだけ。汚れたらコンテナを消せばよい
  • 移植・バックアップ及び復元が簡単なこと→コンテナ・イメージを保存するだけ

また、Dockerの構成管理ツールとして、Docker-Composeも合わせて導入します。
Docker-Composeは、複数のDockerコンテナを連携して立ち上げることができます。その際の設定としてYAMLが用いられており、簡単に設定・起動が行えるのが特徴です。

注意

Dockerは64bit アーキテクチャでインストール・実行させることを推奨します。

Linux版Dockerは32bit アーキテクチャにも対応していますが、32bit環境で動作するDockerイメージがとても少ないです。このため、32bit アーキテクチャ上で動くシステムにおいて、期待しているDockerイメージがHubにない、ということが頻繁に発生します。

筆者自身も、32bitのCPUを使用するVPSを借りてDockerを使用しようとした際に、ろくに動くイメージがなく、泣く泣く64bitのものに契約し直した過去があります。

DockerHubの資源を最大限活用するためにも、64bitアーキテクチャでDockerを使用しましょう。

docker-engineのインストール

まず、Dockerの実行環境であるdocker-engineをインストールします。

bashで以下を実行していきます。

admin@hostname:~# sudo apt-get install apt-transport-https ca-certificates
admin@hostname:~# sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
admin@hostname:~# sudo apt-get update
admin@hostname:~# sudo apt-get install docker-engine

インストール後、dockerサービスを起動します。また合わせて、Linux立ち上がりと同時にDockerを起動するようsystemdに設定をします。

admin@hostname:~# sudo systemctl start docker
admin@hostname:~# sudo systemctl enable docker

docker-composeのインストール

続いて、docker-composeをインストールします。

docker-composeはpythonのパッケージ管理システムであるpipを使用します。このため、pipをインストールしたのちに、pip経由でdocker-composeをインストールしていきます。

admin@hostname:~# sudo apt-get install python-pip
admin@hostname:~# sudo pip install docker-compose

docker-composeのサンプルにつきましては、公式のドキュメントを参照ください。

終わりに

Docker環境の構築を解説しました。Docker環境さえあれば、コンテナやイメージを移動しても正しく動くということで、Dockerを中心に据えたシステムはポータビリティ、リライアビリティが高いのが特徴です。今後もDockerの普及は進んでいくことでしょう。

 

 

 

-Docker, Linux, Ubuntu
-, ,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

関連記事

pthread_cancelすると何が行われるのか

仕事でのメモ。 目次1 pthread_cancel2 pthread_cancelで何が行われるのか2.1 シグナル送出2.2 注意2.3 ソースコードを読む2.4 pthread_cancel時の …

ltraceを用いてstd::vector::push_backの動作を見える化する

仕事で使用したltraceの使い方を、メモがてら残しておきます。 目次1 概要1.1 環境2 設計・実装3 ltraceを用いたdynamic libraryのトレース4 終わりに5 メモ5.0.1 …

Linuxサーバの初期設定(Ubuntu 16.04 LTS)

先日、VPS(Scaleway VCS1プラン)をレンタルし、Linuxサーバを立ち上げました。その際の初期設定について記述していきます。 目次1 環境2 作業内容2.1 ユーザ設定2.2 SSH設定 …

Linux+RustでOS自作〜環境構築編〜

目次1 概要2 環境構築2.1 ツール一覧2.2 ツールのインストール3 終わりに4 参考サイト様4.0.1 関連 概要 先日、「30日でできる! OS自作入門」を購入しました。 30日でできる! O …

Docker上でnginx-proxy他を使ってSSL対応マルチドメインサーバ環境の構築

今回は、nginx-proxyを使用し、SSLに対応したマルチドメイン環境を構築します。 追記(2017/10/08):作成したdocker-compose.ymlをGithubに公開しました。目次の …