TDU
コンテナ型仮想化

2019/12/11
マクニカソリューションズ株式会社
Minehiko Nohara
## Agenda ### 1. 基本解説 - 仮想化の歴史 - コンテナの歴史と技術概要 - ユースケース ### 2. ハンズオン - dockerインストールの解説 - 基本コマンド及びDocker Hubのアカウント作成する - dockerでアプリケーションをデプロイする - dockerイメージをビルドする ##### 3. コンテナ環境におけるセキュリティ(時間があれば)

「基本解説」の資料

ダウンロード

ハンズオン

### 1. dockerのインストール 1−1. システムのUpdate $ sudo apt-get update 1-2. dockerをインストール $ sudo apt-get install docker.io 1-3. ログインユーザーをdockerグループに追加 $ sudo gpasswd -a $USER docker 1-4. 再起動 $ sudo reboot #### 前提条件 OS: Ubuntu16.04 LTS
### 2. docker hub 2-1. docker hubへのアクセス https://hub.docker.com/ 2-2. アカウントを作成 2-3. アプリケーション検索 2-4. tagの考え方
dockr hubにアクセスする
https://hub.docker.com/
アカウント作成1
アカウント作成2
アプリケーションの検索
Tag

3. ハンズオン環境へのアクセス

https://labs.play-with-docker.com/
docker hubのアカウントでログイン
docker hubのアカウント情報を入力
「Start」をクリック
Docker Playgroundでホストを追加
準備完了
### 4. Dockerの基本コマンド 1. 起動中のdockerコンテナ一覧出力 $ docker ps 2. 停止中も含めたdockerコンテナの一覧出力 $ docker ps -a 3. ローカルにあるdockerイメージの一覧を出力 $ docker images
### その他よく使うdockerコマンドの例 ※ Docker社の[dockerコマンドリファレンス](http://docs.docker.jp/engine/reference/commandline/index.html)もあわせて参照 docker pull <イメージ名> ## 外部レジストリからイメージを取得 docker run <イメージ名> ## イメージからdockerを起動 docker logs <コンテナID> ## dockerコンテナのログを出力 docker exec <コンテナID> ## dockerコンテナの中にログイン docker stop <コンテナID> ## 起動中のdockerコンテナを停止 docker start <コンテナID> ## 停止中のdockerコンテナを起動 docker rm <コンテナID> ## dockerコンテナを削除 docker rmi <イメージ名> ## ローカルのdockerイメージを削除
### 5. wordpressのシステムを構築する 1. MySQLのデプロイ 2. Wordpressのデプロイ

1. MySQLのデプロイ

以下のコマンドでインストール

docker run --name <任意の名前> -v <任意のボリューム>:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=<任意のパスワード> -p <任意のポート>:3306 -d mysql:<任意のタグ>

例:

docker run --name mysql -v /my/custom:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=Macnica123 -p 3306:3306 -d mysql:5.6

2. Wordpressのデプロイ(1/2)

以下のコマンドでインストール

docker run --name <任意の名前> -e WORDPRESS_DB_HOST=<MySQLのホスト名 or IP>:<MySQLのポート> -e WORDPRESS_DB_USER=<任意のDBユーザー> -e WORDPRESS_DB_PASSWORD=<任意のDB> -p <任意のポート>:80 -d wordpress:<任意のタグ>

例:

docker run --name wordpress -e WORDPRESS_DB_HOST=192.168.0.13:3306 -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=Macnica123 -p 80:80 -d wordpress:latest

2. Wordpressのデプロイ(2/2)


Wordpressへのアクセス


Wordpressの言語設定

Wordpressの初期設定

Wordpressの設定完了

Wordpressにログイン

Wordpress

### 6. Dockerのコマンドを試す 1. 起動中のdockerコンテナ一覧出力 $ docker ps 2. wordpressコンテナを停止する $ docker stop wordpress 3. 停止中も含めたdockerコンテナの一覧出力 $ docker ps -a 4. ローカルにあるdockerイメージの一覧を出力 $ docker images 5. wordpressコンテナを起動しなおす $ docker start wordpress 6. wordpressコンテナのログを見る $ docker logs wordpress
### 7. dockerコンテナの中にログインする 1. 起動中のdockerコンテナ一覧出力 $ docker ps 2. wordpressコンテナにログインしてみる $ docker exec -it wordpress /bin/bash 3. wordpressコンテナからログアウトする $ exit
### 8. dockerコンテナの停止と削除 1. 起動中のdockerコンテナ一覧出力 $ docker ps 2. wordpressコンテナを停止 $ docker stop wordpress 3. wordpressコンテナを削除 $ docker rm wordpress 4. wordpressコンテナが削除されたことを確認 $ docker ps -a
### MySQLコンテナも削除する 1. 起動中のdockerコンテナ一覧出力 $ docker ps 2. MySQLコンテナを停止 $ docker stop mysql 3. MySQLコンテナを削除 $ docker rm mysql 4. MySQLコンテナが削除されたことを確認 $ docker ps -a
### 9. docker compose 1. docker composeとは 2. docker-compose.ymlファイルを作成する 3. docker-composeを起動する 4. docker-composeを終了する
### docker composeとは docker composeとは、YAMLと呼ばれるフィル形式で 定義された構成情報をもとに、一つまたは複数の dockerコンテナを一括で起動する仕組みです。
### docker-compose.ymlファイルを作成する 1. docker-compose.ymlファイルの作成 $ vi docker-compose.yml 2. 「i」キーを押して編集モードに入る 3. 下のページにあるファイルの内容をコピーして貼り付ける 4. 「WORDPRESS_DB_HOST」のアドレスを自分の環境に変更する 5. 「ESC」キーを押して編集モードを終了する 6. 「:」キーを推してから「wq」とタイプして保存/終了する

docker-compose.yml


version: '2'
services:
  db:
    image: mysql:5.6
    volumes:
      - "/my/custom:/etc/mysql/conf.d"
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: Macnica123

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - "80:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: 192.168.0.13:3306
      WORDPRESS_DB_PASSWORD: Macnica123
						

docker-compose.yml 編集用

### docker composeを起動する $ docker-compose up ### docker composeを終了する $ docker-compose down
### 10. 自分のdockerイメージをビルドする 1. 概要 2. index.htmlファイルを作成する 3. Dockerfileを作成する 4. dockerイメージをビルドする 5. ビルドしたイメージを起動する 6. ビルドしたイメージをDocker HubにPushする
### 概要 dockerイメージは比較的簡単に自分自身で作ることが可能です。 Dockerfileと呼ばれるファイルを作成して、ビルドコマンド を実行すると、自分のイメージが作成できます。 作成したイメージは、自分のDocker Hubで公開することが可能です。
### index.htmlファイルを作成する 1. index.htmlファイルの作成 $ vi index.html 2. 「i」キーを押して編集モードに入る 3. 下のページにあるファイルの内容をコピーして貼り付ける 4. 必要に応じて中のテキストを編集する 5. 「ESC」キーを押して編集モードを終了する 6. 「:」キーを推してから「wq」とタイプして保存/終了する

index.html


  <!DOCTYPE html>
  <html>
      <head>
          <title>TDU Test page</title>
      </head>
      <body>
          <h1>[[ Hello TDU Students!]]</h1>
          <h2>This is TDU docker handson!</h2>
      </body>
  </html>
  						
### Dockerfileを作成する 1. Dockerfileファイルの作成 $ vi Dockerfile 2. 「i」キーを押して編集モードに入る 3. 下のページにあるファイルの内容をコピーして貼り付ける 4. 必要に応じて中のテキストを編集する 5. 「ESC」キーを押して編集モードを終了する 6. 「:」キーを推してから「wq」とタイプして保存/終了する

Dockerfile


from nginx

RUN apt-get update -y 
COPY index.html /usr/share/nginx/html/
RUN chmod +x /usr/share/nginx/html/index.html

EXPOSE 80
						
### Dockerイメージをビルドする $ docker build -t web:1.0 . ### ビルドしたイメージを起動する $ docker run -p 80:80 -d web:1.0
### ビルドしたイメージをDocker HubにPushする 1. イメージのタグ $ docker tag web:1.0 <Docker HubのID>/web:1.0 2. Docker Hubへのログイン $ docker login 3. イメージのPush $ docker push <Docker HubのID>/web:1.0
FIN
## 最後に

マクニカのコンテナを用いたDevOpsソリューション

We are Hiring!!

人材募集中!!

採用応募ページへ

会社情報リンク

マクニカ

マクニカネットワークス

ありマク

macnica.ai

Thank you