Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
しょしんしゃようDocker事例集
Search
Wataru Noguchi
September 26, 2015
Technology
1.5k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
しょしんしゃようDocker事例集
LT スライドです。
第8回 コンテナ型仮想化の情報交換会@東京 - connpass
http://ct-study.connpass.com/event/18052/
#lxcjp
Wataru Noguchi
September 26, 2015
More Decks by Wataru Noguchi
See All by Wataru Noguchi
UniStudy#0 今時のDevOpsの取り組み事例集
wnoguchi
0
540
Other Decks in Technology
See All in Technology
AIコーディングの次。コードレビューと理解負荷を解消して組織の開発生産性を高める
moongift
PRO
2
2.7k
DDDのエッセンスを取り入れたAIでの開発
ak2ie
0
160
Digitization部 紹介資料
sansan33
PRO
2
7.7k
Kiro Crew入門 - 常駐エージェントの仕組みと使いどころ / Intro to Kiro Crew
k_adachi_01
1
600
AI時代に、人は何を、どう学ぶのか #pbl_pub / What and How Do We Learn in the AI Era?
takaking22
1
160
What's new in Go 1.27?
ciarana
0
280
20260807_第6回_関東kaggler会LT_claw系bot xangiと始める、"寂しくない" kaggle
sugupoko
0
370
会社紹介資料 / Sansan Company Profile
sansan33
PRO
24
430k
コネクションをピン留めさせずに SELECTクエリのタイムアウトを設定した話
codmoninc
0
170
私がブラウザを自作したくなった理由
supurazako
1
270
コーチングの奥義 何もしないテクニック
jinwatanabe
0
140
属人化を叩き割れ!「制作加速」と「安定化」の矛盾を打破する:8年目プロダクトが辿り着いた「ミスが起こり得ない」アセット制作フローの全貌
gree_tech
PRO
0
120
Featured
See All Featured
[SF Ruby Conf 2025] Rails X
palkan
2
1.3k
SEO for Brand Visibility & Recognition
aleyda
0
4.7k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.4k
Are puppies a ranking factor?
jonoalderson
2
3.8k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Marketing to machines
jonoalderson
1
5.7k
Leo the Paperboy
mayatellez
8
2.2k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.1k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
570
The Curse of the Amulet
leimatthew05
2
14k
Transcript
しょしんしゃよう Docker事例集 @wnoguchi 第8回 コンテナ型仮想化の情報交換会@東京
お前誰?: 野口航(@wnoguchi) • しがないソフトウェアエンジニア(29歳) • 茨城県日立市在住 • 愛機は今話題沸騰中のL•n•v• • 今流行のDockerに手を出してみた
• LTやったことないのでやりたいというモチ ベーション • 株式会社ユニキャスト所属 • シェアハウス「コクリエ」に居住 • 田舎に興味ある人はぜひ遊びに来てくだ さい
もくじ(とりくみ) • 事例1: 自分のサイトを Docker(さくらのVPS)で運用してみた(一部 障害あり) • 事例2: 会社の開発環境用Vagrant仮想マシンをDockerで書き換えて みた(失敗)
• 最近のトレンド: Boot2docker より Docker Toolbox のほうがよさ げ?
事例1 自分のサイトをDockerで運用してみた • はてなブログで http://blog.pg1x.com/ 技術ブログ運営しています。 • 静的コンテンツもまとめて扱いたくて http://pg1x.com/ に統合したい。
• Dockerでサイト作ってみた • アップロードしたファルも永続化するようにした • MySQLのデータは永続化される
事例1 自分のサイトをDockerで運用してみた Dockerfile #wordpress/Dockerfile at 4823a04099 · docker-library/wordpress # https://goo.gl/qjtEPa
FROM wordpress # ボリュームの共有をおこなうため、実行ユーザ、グループのIDを変更 RUN usermod -u 1000 -U www-data RUN groupmod -g 1000 www-data VOLUME [“/var/www/html/wp-content”] ENTRYPOINT ["/entrypoint.sh"] CMD ["apache2-foreground"] Wordpressのイメージは自前でカスタマイズ DockerのVolumeのアクセス権限の問題について - Qiita http://goo.gl/6DdCQ5
事例1 自分のサイトをDockerで運用してみた [wnoguchi@smtp docker-wordpress]$ docker build -t wnoguchi/wordpress . Sending
build context to Docker daemon 20.85 MB Sending build context to Docker daemon Step 0 : FROM wordpress ---> 4613a7aba13e Step 1 : RUN usermod -u 1000 -U www-data ---> Running in bde6cfe62556 ---> 4d10460a2de0 Removing intermediate container bde6cfe62556 Step 2 : RUN groupmod -g 1000 www-data ---> Running in f2f3fb96616e ---> 81b7b01c71dc Removing intermediate container f2f3fb96616e Step 3 : ENTRYPOINT /entrypoint.sh ---> Running in a4dc06c85735 ---> 992c2908310e Removing intermediate container a4dc06c85735 Step 4 : CMD apache2-foreground ---> Running in c1bc24c7658d ---> d3348cf9792c Removing intermediate container c1bc24c7658d Successfully built d3348cf9792c
事例1 自分のサイトをDockerで運用してみた docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock jwilder/nginx-proxy
docker run --name=mysql -d ¥ -e 'MYSQL_ROOT_PASSWORD=blahblahblah' ¥ -e 'MYSQL_DATABASE=wordpress' ¥ -v /opt/mysql/data:/var/lib/mysql ¥ mysql:5.7 docker run -d ¥ -e VIRTUAL_HOST=pg1x.com ¥ -e 'WORDPRESS_DB_PASSWORD=blahblahblah' ¥ -v /opt/wordpress/wp-content:/var/www/html/wp-content ¥ --link mysql:mysql ¥ wnoguchi/wordpress
事例1 自分のサイトをDockerで運用してみた
事例1 自分のサイトをDockerで運用してみた
事例2 会社の開発環境用 Vagrant仮想マシンをDockerで書き換えてみた • 結論:失敗しました • やらなきゃならないこと • 1つのVMの中にApache, PHP,
MySQL, ImageMagick ごった煮 • サービスごとに連携している部分は切り離して、 mutable な部分はボリュームとして 切り出さないといけない • つまり、APのコンテナとMySQLのコンテナには最低限分離しないといけない • PHPアプリケーションのコンテナとMySQLのコンテナのリンクに失敗(応用 力と時間がなかった)
事例2 会社の開発環境用 Vagrant仮想マシンをDockerで書き換えてみた Vagrant.configure(2) do |config| config.vm.box = "puppetlabs/centos-7.0-64-nocm" config.vm.network
"forwarded_port", guest: 80, host: 8080 config.vm.network "forwarded_port", guest: 3306, host: 3306 config.vm.provision "shell", inline: <<-SHELL sudo yum -y install httpd sudo yum -y install php sudo yum -y install php-mbstring sudo yum -y install php-mysql # EPEL リポジトリを有効にして php-mcrypt を入れる sudo rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel- release-7-5.noarch.rpm sudo yum -y install --enablerepo="epel" php-mcrypt sudo yum -y install mariadb-server sudo yum -y install ImageMagick sudo systemctl enable httpd sudo systemctl enable mariadb sudo systemctl start httpd sudo systemctl start mariadb sudo systemctl disable firewalld sudo systemctl stop firewalld # デバッグ用 sudo yum -y install php-xdebug # 手動実行してください(MariaDB) #mysql_secure_installation SHELL end FROM centos MAINTAINER
[email protected]
RUN yum -y install httpd RUN yum -y install php RUN yum -y install php-mbstring RUN yum -y install php-mysql # EPEL リポジトリを有効にして php-mcrypt を入れる RUN rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel- release-7-5.noarch.rpm RUN yum -y install --enablerepo="epel" php-mcrypt #RUN yum -y install mariadb-server RUN yum -y install ImageMagick # デバッグ用 RUN yum -y install php-xdebug # 手動実行してください(MariaDB) #mysql_secure_installation # コンテナ内のポート80番を公開 EXPOSE 80 # ENTRYPOINT ["/usr/sbin/httpd"] CMD ["-D", "FOREGROUND"] いい感じ!! Vagrantfile Dockerfile
事例2 会社の開発環境用 Vagrant仮想マシンをDockerで書き換えてみた いい、感じ? vagrant up vagrant up vagrant teraterm
docker run –d ¥ --link mysql:mysql ¥ unicast/foo-img Windows上でやってます(Windowsは修羅の道)
Boot2docker使っていたらDocker Machine奨 められた WARNING: The 'boot2docker' command line interface is
officially deprecated Docker Machine 使えよ! っていうかDocker Toolbox使おうぜ! https://www.docker.com/toolbox 乗るしかない。 このビッグウェーブに。 Boot2docker Docker Toolbox
Boot2docker使っていたらDocker Machine奨 められた • これで僕も流行に乗れる • UIが Windows 10 に似てる
• プログレスバーが円に なってて特に
Boot2docker使っていたらDocker Machine奨 められた ENOENT: no such file or directory, open
'C:¥Users¥<redacted>¥ca.pem' Windowsを使っているからなのか?!
参考書 • Dockerエキスパート養成読本[活用の基礎と実践ノウハウ満載!] (Software Design plus) http://www.amazon.co.jp/dp/4774174416 • → http://goo.gl/gVjwAu
ご清聴ありがとうございました。