MENU

【docker入門】基本的な操作・流れを押さえよう。

2020 2/11
【docker入門】基本的な操作・流れを押さえよう。

今回はdockerのお話。

なんとなくdockerという言葉は聞いたことあるし,漠然とどんなものかを把握していた...つもり。

いい機会だったのでdockerに触れてみました。
基本的な導入の流れ・操作を備忘録しておきます。どうぞ。

目次

dockerとは

開発環境から本番環境に至るまでの一つの流れを作るためのプラットフォーム。
開発者がかんたんにアプリケーションを動かす環境を作ることができます。
メリットとしては,あの煩わしい環境構築の手間を考慮する必要がなくなることです。

以下の記事でほぼほぼdockerの全体図を掴めます。

Qiita
【図解】Dockerの全体像を理解する -前編- - Qiita
【図解】Dockerの全体像を理解する -前編- - Qiita この記事は何か イメージやコンテナなどの基本からdocker-compose、docker-machine, docker swarmなどのDocker周りの様々な概念の全体像を整理して、Dockerの仕組みを...

dockerを使う利点

  • システム基盤に依存せずにアプリの開発に従事できる。
  • コンテナという概念で管理を行うために,作成するアプリごとに環境(コンテナ)を用意するだけで良い。コンテナはプラットフォームに依存しないため,ある環境で構築したものを,別の環境に用意に移動可能。(共同開発が容易)
  • MACのOSでもLinuxのubuntuの環境を用意することができる。もちろんWindowsでも動くし,とにかく環境はどうだっていいのだ。
  • ソースコードや,システム用ツール,システム用ライブラリなどサーバーのすべてをイメージ化できる。

自分のPCで動いたものが他人のPCでもかんたんに動かすことができる。
環境構築に悩む必要がないので,非常にdocker有能です。なんで最近まで使って来なかったんだろう...。

では,さっそくdockerを使っていきましょう。

dockerの使い方,導入までやってみる

dockerのセットアップ

  • Linuxで動かす場合は以下のコマンドでセットアップ可能です。
$ curl -sSL https://get.docker.com/ | sh

または,

$ wget -q0- https://get.docker.com/ | sh

最新の現行バージョンのDockerを利用できます。
セットアップスクリプトが実行され簡単にセットアップしてくれます。

  • Windowsの方はCygwinの導入をおすすめします。
    Cygwinを導入後,コマンドの実行を行います。

dockerイメージを導入

dockerイメージを導入するにはdocker hubからの導入が一般的で非常に簡単です。

では,dockerhubからイメージを取得していきます。
今回は例としてdocker/whalesayというイメージを取得していきます。

$ docker pull docker/whalesay

イメージの取得ができたら,イメージ一覧を表示してみましょう。
おそらくpullしてきたイメージが一覧に表示されます。

$ docker images

 REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
 docker/whalesay     latest              6b362a9f73eb        4 years ago         247MB 

dockerの実行していきます

$ docker run docker/whalesay cowsay hello

cowsayはdocker/whalesayのコマンドです。
helloはそのコマンドの引数(今回はこの引数を出力します。)

おそらくクジラが喋ったのではないでしょうか。

<pre class="wp-block-preformatted"> _______ 
< hello >
 ------- 
    \
     \
      \     
                    ##        .            
              ## ## ##       ==            
           ## ## ## ##      ===            
       /""""""""""""""""___/ ===        
  ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ /  ===- ~~~   
       \______ o          __/            
        \    \        __/             
          \____\______/   </pre>

イメージを作成する

主にこの2つのコマンドを扱います。

今回はdocker buildを使います。

後ほど説明していきます。

$ docker commit [コンテナID] [イメージ名:タグ]
$ docker build -t [イメージ名:タグ] .

例として,docker/whalesayを改変して,名言チックなことをクジラに喋らせるようなdockerイメージの作成を行っていきます。
(名言を喋らせるためにfortunesパッケージを使います。)

作業用ディレクトリの作成
$ mkdir mydocker
$ cd mydocker

dockerfileの作成

$ vi dockerfile

dockerfileには以下の内容を記述していきます。

FROM docker/whalesay:latest
RUN apt-get -y update && apt-get install -y fortunes
CMD /usr/games/fortune -a | cowsay

FROM…元となるdockerイメージの指定(今回はdocker/whalesayの最新[latest]を指定)
RUN…コマンドの実行(今回はパッケージを最新にした後,fortunesパッケージを導入していきます。)
CMD…コンテナの実行コマンド(今回はfortuneコマンドcowsayに渡して実行していきます。)

ビルドします。

$ docker build -t mydocker .

コンテナが作成され,イメージがビルドされます。
作成できたか確認は,docker一覧で確認します。

$ docker images

今ビルドしたイメージ名が存在していれば作成完了です。

コンテナの実行

ubntuコンテナの実行をするためには,

$ docker run -i -t ubuntu bash

「-i」標準入力(STDIN)を開き続ける
「-t」疑似ターミナル(pseudo-tty)を割り当てる。この場合はbashを割り当てています。

余談ですが,よく使うnginxコンテナの実行をするためには,

$ docker run -d -p 80:80 ¥ -v /data/:/usr/share/nginx/html nginx:latest

「-d」バックグラウンドで実行する
「-p」ポートの割り当て(ホスト側:コンテナ側)
「-v」ボリュームの割り当て(ホスト側:コンテナ側)

では,作成したdockerイメージを実行していきます。

実行するとこうなる...(オプションは付けなくて結構です)

$ docker run mydocker 
 ____________________________________ 
 / That's life.                       \
 |                                    |
 | What's life? A magazine.           |
 |                                    |
 | How much does it cost? Two-fifty.  |
 |                                    |
 \ I only have a dollar. That's life. /
  ------------------------------------ 
     \
      \
       \     
                     ##        .            
               ## ## ##       ==            
            ## ## ## ##      ===            
        /""""""""""""""""___/ ===        
   ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ /  ===- ~~~   
        \______ o          __/            
         \    \        __/             
           \____\______/     

なんか喋ってる。。。
意味はよく分からんが名言チックなことをしゃべるようになった。

こんな感じでチョチョイのちょいでdockerの導入が終わってしまった。
素晴らしい。


ここでいきなりですが、ちゆりの

今週の買って良かった!!おすすめアイテム

夏になるから軽装で出かけれるようにとトートバックを探していたところ、
可愛くてシンプルおしゃれなトートバックを見つけちゃいました。
女子ウケも男子ウケも素晴らしいぞこれ絶対。

この記事が気に入ったら
フォローしてね!

目次
閉じる