35
G’s Academy Tokyo 特別講座 Day2 Linux Basic for Entrepreneur 25 th January 2017 IBM Japan Ltd. 1

20170124 linux basic_2

Embed Size (px)

Citation preview

G’s Academy Tokyo 特別講座 Day2Linux Basic for Entrepreneur

25th January 2017IBM Japan Ltd.

1

当講座の流れ起業家、スタートアップのデベロッパーのためのLinux講座

2

• 初⽇

• 起業家やデベロッパーにとってのLinuxの位置付け

• Linuxの学習

• Linuxをビジネスに活かすためのコンテナ技術の学習

• 2⽇⽬

• サンプルアプリケーションを作成してクラウドにデプロイ

当講座で得られるスキル以下のようなスキルが習得可能

3

• 初⽇(難易度 易)• オープンソースの技術がわかる• Linuxの基礎概要がわかる• Linuxの基本操作ができる• コンテナ技術の基礎概要がわかる• コンテナ技術の基本操作ができる

• 2⽇⽬(難易度 普通)

• Linux上にDockerを稼働させアプリケーションの作成ができる• Docker技術を利⽤してクラウドにデプロイができる

準備するもの以下のツールを事前にインストールすることを前提

4

• 前提環境

• Docker• Dockerの公式サイトからインストール( https://docs.docker.com/)

• Bluemix(クラウド環境)*2⽇⽬に使う可能性あり• アカウントの取得(https://bluemix.net)

• Bluemix CLIのインストール( https://clis.ng.bluemix.net/ui/home.html)

• Cloud Foundry CLIのインストール(https://github.com/cloudfoundry/cli/releases)

コンテナでWordpressを⽴ててみる

5

本⽇の流れ

6

1. イメージの作成とコンテナの起動(昨⽇の復習)

2. Wordpress⽤コンテナイメージの作成

3. Mysql⽤コンテナイメージの作成

4. Wordpressインストール

Wordpressって?

7

• 2003年にオープンソースのブログ作成システムとして公開

• 圧倒的なシェアを誇るCMS(コンテンツマネジメントシステム)

• メリット

• 無料

• 管理画⾯でコンテンツ管理が可能(PHPやHTMLの知識が不要)

• テーマを使ってデザインを⾃由に替えることができる(テーマが豊富!)

Wordpressの仕組み

8

コンテンツ コンテンツ

イメージの作成とコンテナの起動

9

$ docker -v

1. Dockerの起動状況の確認Dockerのversionの確認

$ docker search centos

2. コンテナイメージを検索centos6

イメージの作成とコンテナの起動

10

$ docker pull centos:centos6

3. コンテナイメージのダウンロードコンテナのイメージをダウンロードします。今回はcentos6

$ docker run -it centos:centos6 /bin/bash[root@478d5b4e3216 /]#

4. コンテナ起動とアクセスコンテナを起動する

:centos6のようにタグを指定するとverを指定できる

コンテナのコンソールが起動するコンテナから抜け出す

Ctrl + p → Ctrl + Q

イメージの作成とコンテナの起動

11

$ docker ps -a

5. コンテナの状況確認docker ps -a はコンテナの状況を確認するコマンド

$ docker attach [Container ID]

6. 再度コンテナにアクセスps ‒aで取得したコンテナIDをつかう

-aをオプション指定すると、終了中のコンテナも表⽰される

イメージの作成とコンテナの起動

12

$ exit

7. コンテナを終了Linuxを終了するためにはexitを使う

$ docker ps -a

8. コンテナ状況確認ps ‒aで取得する

STATUSがExitedになっていることが確認できるCtrl + p → Ctrl + qはバックグラウンドでコンテナを起動させるが、exitはコンテナが終了する

コンテナの削除

13

$ docker rm [Container ID]

1. 不要コンテナの削除rmコマンドで不要コンテナを削除する

$ docker ps -a

2. コンテナ状況確認ps ‒aで取得する

作成したコンテナが削除されていることが確認できる

仮想サーバーのポートにバインドして起動

14

$ docker run -it -p 80:80 --name apache centos:centos6 /bin/bash

1. コンテナのポートを仮想サーバーのポートにバインドして起動p 仮想サーバーのポート:コンテナのポート によってポートフォワーディングの設定を⾏う

外部アクセスをコンテナのポートに変換してアクセスさせることができる--nameでコンテナに名前を与えている(コンテナIDの代わりとして使える)

Wordpress⽤コンテナイメージの作成

15

コンテンツ コンテンツ

Webアクセスできる⼊り⼝を作るためApacheを⽤意 コンテナ

同⼠で接続

Wordpress⽤コンテナ(Apache準備)

16

$ [root@d6a749ea9f7e /]# rpm -qa | grep httpd

1. Apacheインストールの確認Apacheがインストールされているか確認する

rpmはLinuxのパッケージ管理マネージャーフルパッケージ名が分からない場合に引っかけてgrepで探します。「-a」オプションは「すべて列挙」の意味となります。|grep httpd はhttpdという⽂字列を検索している

$ [root@d6a749ea9f7e /]# yum -y install httpd

2. yumからApacheのインストールyumからApacheをインストール

yumもパッケージ管理マネージャー内部的にrpmを呼び出している

Wordpress⽤コンテナ(Apache準備)

17

$ [root@d6a749ea9f7e /]# rpm -qa | grep httpd

3. Apacheインストールの確認Apacheがインストールされているか確認する

$ [root@d6a749ea9f7e /]# cp -p /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org

4. Apacheの設定ファイルバックアップApacheの設定ファイルであるhttpd.confをバックアップ

Wordpress⽤コンテナ(Apache準備)

18

$ [root@d6a749ea9f7e /]# sed -i -e 's/¥#ServerName www.example.com:80/ServerNamedocker.example.com/g' /etc/httpd/conf/httpd.conf

5. Apacheの設定ファイル内のServernameの置換このままだと、Apacheがワーニングを出⼒するため、ServerNameを変更

$ [root@d6a749ea9f7e /]# /etc/init.d/httpd configtest

6. Apacheの設定ファイルの構⽂チェックApacheの設定ファイルの構⽂チェック

問題がなければ、”Syntax OK”と表⽰される

Wordpress⽤コンテナ(Apache準備)

19

$ [root@d6a749ea9f7e /]# /etc/init.d/httpd start

7. Apacheの起動Apacheをstartコマンドで起動

$ [root@d6a749ea9f7e /]# ps awux | grep -v grep | grep http

8. Apacheの起動確認psコマンドとオプションを使ってApacheの起動を確認

grep ‒v grep はgrepというプロセスの表⽰を除くという意味|(パイプ)は処理をつなげる

Wordpress⽤コンテナ(Apache準備)

20

$ [root@d6a749ea9f7e /]# echo "docker test" >> /var/www/html/index.html

9. テスト⽤のindex.htmlを⽤意テスト⽤の画⾯出⼒を⽤意する

$ [root@d6a749ea9f7e /]# curl http://127.0.0.1/docker test

10. Webサーバーにアクセスcurlコマンドでwebサーバーにアクセス(local)

先程作成した画⾯出⼒ファイルの内容が表⽰されていればOK

Wordpress⽤コンテナ(Apache準備)

21

$ [root@d6a749ea9f7e /]# chkconfig httpd on

11. ⾃動起動を有効にする⾃動起動の設定を⾏う

Wordpress⽤コンテナ(PHPインストール)

22

$ [root@d6a749ea9f7e /]# yum -y install php php-mbstring php-mysql

1.phpのインストールと設定yumコマンドからphpのインストール

$ [root@d6a749ea9f7e /]# rpm -qa | grep php

2.phpのインストール確認rpmコマンドとgrepで確認

Wordpress⽤コンテナ(コンテナ外から確認)

23

$ [root@d6a749ea9f7e /]# echo "<?php echo 'docker test php'; ?>" >> /var/www/html/index.php

1.コンテナ外からのアクセス確認テスト⽤のインデックスファイルを作成

$ [root@d6a749ea9f7e /]# /etc/init.d/httpd restart

2.Apacheの再起動restartコマンドでApacheを再起動

$ [root@d6a749ea9f7e /]# curl http://127.0.0.1/index.phpdocker test php

3.Webサーバーにアクセスして確認index.phpにアクセス

先程phpファイルに書き込んだ内容が表⽰されていればOK

Wordpress⽤コンテナ(コンテナ外から確認)

24

4.ブラウザで確認ブラウザを⽴ち上げてhttp://localhost:80/index.php にアクセスしてみる先ほど指定した、ポートフォワーディングのポート番号で、コンテナのWEBサーバーへアクセスができる

Wordpress⽤コンテナ(Wordpressインストール)

25

$ [root@d6a749ea9f7e /]# yum install wget$ [root@d6a749ea9f7e /]# yum install tar

1.wgetとtarのインストールWordPressのファイルをダウンロードするため、wgetとtarをダウンロード

$ [root@d6a749ea9f7e /]# cd /tmp/$ [root@d6a749ea9f7e /]# wget https://ja.wordpress.org/wordpress-4.4-ja.tar.gz

2.Wordpressのダウンロード最新版のWordPressをダウンロード

$ [root@d6a749ea9f7e /]# tar zxvf wordpress-4.4-ja.tar.gz

3.解凍と設置ダウンロードしたファイルの解凍

Wordpress⽤コンテナ(Wordpressインストール)

26

$ [root@d6a749ea9f7e /]# cd wordpress$ [root@d6a749ea9f7e /]# rm /var/www/html/*$ [root@d6a749ea9f7e /]# mv * /var/www/html/.

4.不要ファイルを削除しWordPressの構成ファイルをルートドキュメントへ/var/www/htmlごと⼊れ替える

$ [root@d6a749ea9f7e /]# exit

5.コンテナイメージのコミットコンテナを終了する

$ docker ps -a

6.コンテナの確認終了しているか確認

Wordpress⽤コンテナ(Wordpressインストール)

27

$ docker commit [Container ID] centos:wordpress

7.先程のコンテナをコミットし新しいイメージとして保存commitオプションで保存したいイメージ名:タグ名で登録

$ docker rm [Container ID]

8.不要なコンテナを削除rmコマンドでコンテナを削除する

Mysql⽤コンテナ(Mysqlのインストール)

28

$ docker run -i -t -p 8000:3306 --name mysql centos:centos6 /bin/bash

1.Mysqlサーバー⽤のコンテナの起動コンテナのポートを仮想サーバーのポートにバインドして起動

2.MySQLサーバーのインストールyumコマンドでインストール$ [root@d6a749ea9f7e /]# yum -y install mysql-server

3.MySQLサーバーの起動startコマンドで起動$ [root@d6a749ea9f7e /]# /etc/rc.d/init.d/mysqld start

Mysql⽤コンテナ(Mysqlのインストール)

29

4.MySQLサーバーの⾃動起動の設定chkconfigコマンドでmysqlの⾃動起動設定をon$ [root@d6a749ea9f7e /]# chkconfig mysqld on

Mysql⽤コンテナ(Mysqlの設定)

30

1.MySQLのrootユーザーの設定rootユーザーのパスワードと権限を設定するためrootでログイン$ [root@d6a749ea9f7e /]# mysql -u root

2.rootユーザーのパスワード設定rootユーザーのパスワードと権限を設定するためrootでログインmysql> SET PASSWORD FOR root@localhost=PASSWORD(’passw0rd');

3.rootユーザーの権限設定rootユーザーのパスワードと権限を設定するためrootでログインmysql> grant all privileges on *.* to root@'%'IDENTIFIED BY ’passw0rd';mysql> FLUSH PRIVILEGES;

Mysql⽤コンテナ(Mysqlの設定)

31

4.MySQLのDB作成WordPress⽤のデータベースを作成mysql> create database wordpress character set utf8;

5.DBが作成されていることを確認showコマンドで確認mysql> show databases;

6.mysqlから抜けるexitでmysqlから抜けるmysql> exit;

Mysql⽤コンテナ(Mysqlの設定)

32

7.コンテナイメージのコミットコンテナからぬけるCtrl + p → Ctrl + q

8.先程のコンテナをコミットして新しいイメージとして保存commitコマンドでイメージ名:タグ名を指定するdocker commit [Container ID] centos:mysql

WordPressのインストール

33

1.link指定でWordPressコンテナの作成コンテナのポートを仮想サーバーのポートにバインドして起動

2.MySQLコンテナと接続確認envで環境変数をみてMySQLのIPアドレスを確認する

$ docker run -it -p 80:80 --link mysql:db --name wordpress centos:wordpress /bin/bash -link オプション を リンクしたいコンテナ名:コンテナ内 での名称と記述することで、先ほど作成したMySQL⽤のコンテナとWordPress⽤のコンテナを接続することができる

$ [root@d6a749ea9f7e /]# env

WordPressのインストール

34

3.WordPressのインストールApacheを起動

4.WordPressの設定ファイルの権限変更wp-config.phpの書き込みができるようにフォルダの属性を変更

$ [root@d6a749ea9f7e /]# chmod 777 /var/www/html/

$ [root@d6a749ea9f7e /]# /etc/init.d/httpd start

5.WordPressの確認ブラウザを⽴ち上げてhttp://localhost:80/に接続

6.MySQLのIPアドレスとDBの設定情報を⼊⼒しインストールWordPressの基本情報を⼊⼒し設定終了

For more informationIBM BlueHub official websitewww.ibm.com/ibm/jp/bluehub/

IBM BlueHub official Facebook www.facebook.com/IBMBlueHub

35