SlideShare a Scribd company logo
G’s Academy Tokyo 特別講座 Day2
Linux Basic for Entrepreneur
25th January 2017
IBM 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/ServerName
docker.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.php
docker 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 information
IBM BlueHub official website
www.ibm.com/ibm/jp/bluehub/
IBM BlueHub official Facebook
www.facebook.com/IBMBlueHub
35

More Related Content

PPTX
1分で分かるdeveloperWorks Premium
PDF
20170124 linux basic_1
PDF
はてなにおける継続的デプロイメントの現状と Docker の導入
PPTX
IBM Log Analysis with LogDNAを評価した話
PDF
アプリ屋もDockerをドカドカ使おう ~ Docker入門
PDF
Dockerについて
PDF
はじめてのコンテナーDocker & Windows & Linux
PDF
Introduce that Best practices for writing Dockerfiles
1分で分かるdeveloperWorks Premium
20170124 linux basic_1
はてなにおける継続的デプロイメントの現状と Docker の導入
IBM Log Analysis with LogDNAを評価した話
アプリ屋もDockerをドカドカ使おう ~ Docker入門
Dockerについて
はじめてのコンテナーDocker & Windows & Linux
Introduce that Best practices for writing Dockerfiles

What's hot (20)

PPTX
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
PPTX
Appsody でnodejsのアプリを立ち上げよう!
PDF
Docker入門: コンテナ型仮想化技術の仕組みと使い方
PDF
Dockerと継続的インテグレーション
PDF
Dockerイメージ構築 実践テクニック
PDF
【dots. IT勉強会】開発環境のDocker化
PDF
Dockerイメージの理解とコンテナのライフサイクル
PPTX
Docker & Kubernetes基礎
PPTX
Dockerでlamp環境を作って見る
PDF
Docker Swarm入門
PDF
Docker最新動向2017秋+セキュリティの落とし穴
PDF
DockerとDocker Hubの操作と概念
PDF
Docker向け軽量os 3製品比較
PPTX
開発環境をVagrantからdockerに移行してみた
PDF
捕鯨!詳解docker
PDF
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
PDF
Wocker 秒速で WordPress 開発環境を構築する
PPTX
BuildKitによる高速でセキュアなイメージビルド
PPTX
Ansibleを使ってdockerコンテナをプロビジョニングする
PDF
Vagrant & Dockerによるイマドキの開発環境構築
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
Appsody でnodejsのアプリを立ち上げよう!
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Dockerと継続的インテグレーション
Dockerイメージ構築 実践テクニック
【dots. IT勉強会】開発環境のDocker化
Dockerイメージの理解とコンテナのライフサイクル
Docker & Kubernetes基礎
Dockerでlamp環境を作って見る
Docker Swarm入門
Docker最新動向2017秋+セキュリティの落とし穴
DockerとDocker Hubの操作と概念
Docker向け軽量os 3製品比較
開発環境をVagrantからdockerに移行してみた
捕鯨!詳解docker
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Wocker 秒速で WordPress 開発環境を構築する
BuildKitによる高速でセキュアなイメージビルド
Ansibleを使ってdockerコンテナをプロビジョニングする
Vagrant & Dockerによるイマドキの開発環境構築
Ad

Viewers also liked (20)

PDF
Bluemix sign-up
PDF
ふぁ!?フォトソン君
PPTX
StrongLoopでサクっと始めるAPIエコノミー
PDF
How to sign-up Twilio
PPTX
Watsonでメール監視
PDF
よく見てワトソン!
PDF
ふぁ!?フォトソン君
PPT
U1 - Auteur Presentation - Anton Corbijn
PDF
Stem flo summary jl27
PDF
S&B Summit2015 SOFTLAYERクラウドデザインパターン
PDF
Cd m kdec09_bio
PDF
Power line stem cell science
PDF
Cisco Fog Strategy For Big and Smart Data
PPTX
Blue-mixer
PDF
ツアーコンシェルジュNAO
PDF
Senrigan
PDF
Mobile cloudnight 2015/11/11
PPTX
Wasted Energy of TV
PPTX
俺の一日 濡れない、焼けない、遅刻しない
PPTX
Blue-mixer
Bluemix sign-up
ふぁ!?フォトソン君
StrongLoopでサクっと始めるAPIエコノミー
How to sign-up Twilio
Watsonでメール監視
よく見てワトソン!
ふぁ!?フォトソン君
U1 - Auteur Presentation - Anton Corbijn
Stem flo summary jl27
S&B Summit2015 SOFTLAYERクラウドデザインパターン
Cd m kdec09_bio
Power line stem cell science
Cisco Fog Strategy For Big and Smart Data
Blue-mixer
ツアーコンシェルジュNAO
Senrigan
Mobile cloudnight 2015/11/11
Wasted Energy of TV
俺の一日 濡れない、焼けない、遅刻しない
Blue-mixer
Ad

Similar to 20170124 linux basic_2 (20)

PPTX
Docker入門~word press環境を作ってみる ハンズオン編 ver1.4~ pulic
PPTX
LinAction Theme Docker
PDF
Webアプリケーション開発者のためのDockerハンズオン20210519
PDF
Webアプリケーション開発者のためのDockerハンズオン
PPTX
20230128.pptx
PDF
オトナのDocker入門
PDF
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
PDF
コンテナーによるIT基盤変革 - IT infrastructure transformation -
PPTX
Docker入門 OSC 2018 Tokyo/Spring
PPTX
いまさら聞けないDockerコンテナ超入門
PPTX
2019年度 CaaS ワークショップ @ NTTコム
PPTX
ラズパイ2で動く Docker PaaS
PDF
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
PDF
20141004 ゼウス・ラーニングパワーlinuxサーバ構築セミナー
PDF
Docker入門
PDF
Building production server on docker
ODP
Building production server on docker
PPTX
今さら聞けない人のためのDocker超入門 CentOS 7.2対応版
PPTX
今さら聞けない人のためのDocker超入門
PDF
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門~word press環境を作ってみる ハンズオン編 ver1.4~ pulic
LinAction Theme Docker
Webアプリケーション開発者のためのDockerハンズオン20210519
Webアプリケーション開発者のためのDockerハンズオン
20230128.pptx
オトナのDocker入門
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
コンテナーによるIT基盤変革 - IT infrastructure transformation -
Docker入門 OSC 2018 Tokyo/Spring
いまさら聞けないDockerコンテナ超入門
2019年度 CaaS ワークショップ @ NTTコム
ラズパイ2で動く Docker PaaS
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
20141004 ゼウス・ラーニングパワーlinuxサーバ構築セミナー
Docker入門
Building production server on docker
Building production server on docker
今さら聞けない人のためのDocker超入門 CentOS 7.2対応版
今さら聞けない人のためのDocker超入門
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】

More from YUSUKE MORIZUMI (7)

PDF
Bluemixハンズオン資料
PDF
Developers circle vol1
PDF
デジタル広告におけるブロックチェーンの適用
PDF
KituraとサーバーサイドSwift
PPTX
ハートフルセキュリティ
PPTX
英単語帳作成アプリケーション
PPT
みまもりWATニャン
Bluemixハンズオン資料
Developers circle vol1
デジタル広告におけるブロックチェーンの適用
KituraとサーバーサイドSwift
ハートフルセキュリティ
英単語帳作成アプリケーション
みまもりWATニャン

20170124 linux basic_2