skillup

技術ブログ

サーバー・ネットワーク

dockerでの環境構築 〜コンテナ作成し、実作業ができるまで(mac編)

投稿日:2019年4月28日 更新日:

今や環境構築の保存や移行などが比較的自由にできるようにはなってきていると思います。

自分の場合は未だにvagrantのイメージフォルダを移行してやっていますが(汗)。

参考リンク

vagrantで仮想環境を別PCにコピー

やってみるとわかるんですけどvagrantの場合、非常に重いんですよね、boxを移行すると何Gも取られることが多いため、複数の環境を気軽に移行したりはできないんではないかなと思います。
(そういう用途では使わない気もしますし。)

そんなこともあり、仮想環境ツールとしてdockerを復習してます。

以前は2年ぐらい前に勉強してましたね・・・

やたらエラーがボコボコ出て結局断念した記憶があります。今回は数時間程度ですが、そこまでトラブルはなく無事にすすめられました(と言っても超基本的なことしかやってませんが。)

以前の学習リンク

dockerインストール

dockerメモ

docker上でミニサービスを起動させるまで

Dockerfileでのコンテナ作成

vagrantとdockerの違い

vagrant

  • VirtualBox起動の代理(これを使うことでVirtualBoxの起動や設定が楽になる)
    【決定版】仮想環境ってなに?Vagrantってなんなの?に答える!
  • カーネル(OSの中核部分)を含めて仮想環境を丸ごと構築
  • イメージでいうとサーバーを丸ごと作るのに近い
  • vagrantの内で全て完結
  • ホスト環境に依存しないため、丸ごと環境を移管したい時に便利かも。
  • かなり重く、起動時間も時間がかかる。複数のvagrantを入れたりするとPC自体を圧迫する

docker

  • カーネル部分はホスト環境の物を使うため、比較的軽量
  • 比較的素早く環境を建てたいor壊したい時などに便利
  • Windowsだと動かないことが結構あるらしい
  • Linux上でしか使えないため、使用する場合はVirtualBoxで仮想環境を作るか、Windows or Mac用のdockerツールを使う。

Web系のDocker民から見たVagrantについて

Macでのインストール

docker.hub(https://hub.docker.com/)でアカウントを作成後、

https://hub.docker.com/editions/community/docker-ce-desktop-mac

上記リンクの「Get Docker Desktop for Mac (Stable)」からダウンロードすればOKです。

その後、docker version で下記のようにdockerの情報が表示されればOKです。

おおまかな一連のプロセス

imageのpull

例えばCentOS6に環境を作りたいとき、CentOS6のイメージ(CentOS6のテンプレート的なもの)を取得します。

Dockerではイメージから作られた実環境のことを「コンテナ」と言います。基本的にはrunコマンドからコンテナを作成します。

必要な作業を色々

例えばhttpd,php,mysqlを実際にyumで入れるなど

適当なところでコミット&プッシュ

ある程度色々な作業をしたところでcommitをします。

このコマンドによってコンテナの状態をイメージとして登録することができます。後述しますが、この時点でDockerHubに登録することを前提としてアカウント名/リポジトリ名にします。

この時点でDockerHubに入ってリポジトリ(centos6)を作成します。

pushコマンドとはDockerHubに作成したイメージをpushします。gitのpushと全く同じです。

pushしようとしたところusername,passwordが正しくないと出ました。

Docker for macでログインはしているんですが・・・

調べたところemail、passwordでログインしてしましたが、docker loginで再度username,passwordを入力します。

docker login での Sign in について

コンテナ削除&再作成

vagrantでもそうですが、

  1. 実ホストからアクセス
  2. エディタで編集をするために実ホスト上で共有フォルダを作る

が必要になります。(準備ができていたら最初のrunコマンドからでもいいですが・・・)

1ですが、vagrantは別環境なのでipでアクセスしますが、dockerの場合はコンテナのポートを割り当てます。そのオプションが-p 8080:80です。これはコンテナの80番を実ホストの8080に割り当てるという処理です。

これによりlocalhost:8080でアクセスした時にコンテナ上の/var/www/htmlを見に行くようになります。

2ですがコンテナ上でソースを編集する場合、共有するフォルダがなければ延々とvimで作業することになります。そのため共有フォルダを作るために-v /Users/*****/docker_dev:/var/www/htmlというオプションで共有できるようにします。

ソース自体はコンテナではなくホスト上においておきましょう。同期を取るので、ホスト上のものが基本的に優先されます。(これはvagrantも一緒です。)

-サーバー・ネットワーク
-,

執筆者:


comment

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

関連記事

no image

herokuネタ(頻出コマンドなど)

10月末ぐらいから使っているPaasのherokuについてよく使うコマンドについて Contents1 アカウント開設&スタート2 基本的な使い方 アカウント開設&スタート http://skill- …

no image

監視検知処理に関して

実務で監視のスクリプトを書くことがあったんでメモしときます。 監視検知とは例えばあるディレクリに変化(ファイルの作成・更新・削除など)があった時に、それをトリガーにして何らかの処理を行うと言う仕組みに …

no image

clamAV

ウイルスソフトclamAVのインストールと使用法について Contents1 インストール1.1 CentOS61.2 CentOS72 スキャン実行の設定に関して インストール CentOS6 [c …

no image

Git+SSH鍵認証

鍵認証をともなったgitのpushやpullについて。 中央リポジトリに公開鍵がおいてあり、リモートリポジトリに秘密鍵を配置します。 ステップとしては以下の2ステップになります。実行時ユーザーのディレ …

no image

環境変数の扱いについて

環境変数の扱いについてのメモ Contents1 .env.prodなど本番用のものをgitに入れておいてコピー2 S3などのストレージに入れておいて引っ張ってくる3 PaaSに登録4 SysteMa …

アーカイブ