SlideShare a Scribd company logo
1 of 23
Download to read offline
めんどうな環境構築とはおさらば!
Dockerの概要と使い方
Marketing Solution Div. Service Design Unit Drone PF Team
森 祐子
©2023 ARISE analytics Reserved.
2023/12/01
Agenda
©2023 ARISE analytics Reserved. 1
1.背景と目的
2.Dockerとは
3.Dockerの使い方
4.超便利!Docker+VSCode
5.まとめ
1.背景と目的
©2023 ARISE analytics Reserved. 2
背景
⚫ 変化の激しいビジネスニーズにこた
えるにはスピーディかつ効率的に開
発を進めることが重要
⚫ 開発言語やライブラリが多様にあり、
開発環境の構築に時間がかかる
目的
⚫ Dockerによる環境構築の利点
を共有し、いかに便利か知ってほ
しい
本資料ではスピーディかつ効率的に開発環境を構築できるDockerについて説明し、
Dockerがどういう技術で何が便利なのかを共有することを目的としている。
Agenda
©2023 ARISE analytics Reserved. 3
1.背景と目的
2.Dockerとは
3.Dockerの使い方
4.超便利!Docker+VSCode
5.まとめ
2.Dockerとは
①環境構築の苦労話・・・
©2023 ARISE analytics Reserved. 4
かつてはライブラリのバージョンが案件ごとに異なっていたり、様々なソフトウェアを導入する必
要があり開発環境の構築に非常に時間がかかった。
コンテナを使うことにより、環境構築をスムーズにかつローカルPCの環境に依存することなく開
発を進めることができる。
前職での苦労
案件ごとにNodeのバージョン
切り替えるのめんどくさい・・・
インストールしないといけないも
のが多すぎてめんどくさい・・・
他の人は順調なのに、自分の
環境だけうまくいかない・・・
コンテナ技術を使えば
コンテナを使えばバージョンを
意識しなくていい!
PCに直接インストールしないの
で環境を汚さずに済む!
同じ環境を開発メンバー間で
共有できる!
2.Dockerとは
②Dockerの概要
©2023 ARISE analytics Reserved. 5
Dockerとはコンテナを使用できる仕組みのことである。
Linuxを前提としているため、Windows/MacでDockerを使う場合はDocker
DesktopのようなDockerの実行に必要なLinuxを含むパッケージを導入する。
ホストOS
Python MySQL Apache
コンテナ
コンテナはプログラムやシステムを隔離するもので、イメージファイ
ルから作成される。
イメージファイルはコンテナのテンプレートファイルであり、簡単に連
携できる。
2.Dockerとは
③Dockerを使うと何がうれしいの?
©2023 ARISE analytics Reserved. 6
Dockerを使うことでプログラム同士の干渉を防げる/IaCを実現できる/可搬性がある
というメリットがあるため、開発環境をメンバー間で簡単に共有でき、スムーズに構築するこ
とができる。
プログラムの干渉を防ぐ IaCを実現できる 可搬性がある
コンテナで隔離された環境下でプロ
グラムやソフトウェアをインストールす
るので、互いの干渉による不具合
を防げる。
どんなコンテナを作るか、といった手
順をまとめたイメージファイルを連携
するため、それを元にコンテナを作る
だけで環境構築が完了する。
コンテナを定義するイメージファイル
は連携可能なため、異なるマシンで
も同じ環境を簡単に再現することが
できる。
Agenda
©2023 ARISE analytics Reserved. 7
1.背景と目的
2.Dockerとは
3.Dockerの使い方
4.超便利!Docker+VSCode
5.まとめ
3.Dockerの使い方
①Dockerコマンド(1/2)
©2023 ARISE analytics Reserved. 8
他にもバインドマウントを使ってローカルPCのファイルをDockerコンテナにマウントすることができる
DockerはDockerコマンドを使ってコンテナの作成/起動/停止/削除といった操作を行
うことができる。例として、MySQLのイメージを使ってコンテナの作成、起動を実施するコマン
ドは以下のようになる。
① ②
コマンド解説
① -v docker_volume:/var/lib/mysql
コンテナを削除するとデータも消えてしまうので、コンテナ内のデータをDockerが管理するコンテナ用の保存領域にマウントし
ている(ボリュームマウント)
② -dit
d: バックグラウンド実行。指定しないと起動したコンテナがコンソールの制御を握ってしまい、実行中はコマンドを打てない。
i: コンテナにキーボードをつなぐ。コンテナの中身をキーボードで操作するのに必要。
t: 特殊キーを使用可能にする。コンテナの中身をキーボードで操作するのに必要。
3.Dockerの使い方
①Dockerコマンド(2/2)
©2023 ARISE analytics Reserved. 9
Dockerコマンドでコンテナを作成後、コンテナ内でMySQLの操作が可能となっている。
Dockerのボリュームを確認するとMySQLのデータが格納されているためデータの永続化を
実現できる。
execコマンドを使い、実行中のコンテナ内で
MySQLを操作してtestテーブルを作成する
マウント先として指定したdocker_volume内
に先ほど作成したtestテーブルのデータが格納さ
れている
3.Dockerの使い方
②Dockerfile(1/2)
©2023 ARISE analytics Reserved. 10
ソフトウェアのインストールやファイルのコピーを行ったカスタムイメージを作りたい場合は
Dockerfileを使用する。
Dockerfileとはどんなイメージを作るのか設定を記述するファイルであり、イメージのビルド時
に実行したいコマンドを書いておくことができる。
image
Dockerfile コンテナ
3.Dockerの使い方
②Dockerfile(2/2)
©2023 ARISE analytics Reserved. 11
例えばDjangoが実行できるコンテナをDockerで構築したい場合はPythonが実行できる
環境下でDjangoをインストールする必要があるため、Dockerfileを使ってカスタムイメージ
を作成します。
Djangoの実行環境を整えるのに必要な手順
① pythonのイメージファイルを指定
② (任意)標準入出力に関するPythonのバッ
ファリングを無効にする
③ workspaceという名前のフォルダを作成し、そ
こを作業フォルダとして指定する
④ requirements.txtをworkspace内にコ
ピーしてpip installを実行し、Djangoをイン
ストールする
①
②
③
④
3.Dockerの使い方
④docker-compose.yml
©2023 ARISE analytics Reserved. 12
作成したいコンテナの定義値をdocker-compose.ymlに記載する。
ファイルを連携することで開発者間で同じコンテナを再現することができる。
①DBコンテナ
②Webアプリ用コンテナ
Dockerfileはコンテナの元となるイメージの設定ファイル、docker-compose.ymlはコンテナ自体
の設定ファイル
①DBコンテナ
MySQLのイメージを使ってDBコンテナを構築する。
②Webアプリ用コンテナ
カスタムイメージを使うためbuildでDockerfileの
格納場所を相対パスで指定する。
3.Dockerの使い方
③Docker Compose
©2023 ARISE analytics Reserved. 13
Docker ComposeはDocker Desktopに標準装備されている
Dockerコマンドだと設定が多くなればなるほどコマンド文が長くなってしまう上に、1度に1つ
のコンテナしか操作できないため複数のコンテナで構成するシステムを作る際に不便となる。
複数のコンテナを1つの定義ファイルでまとめて実行・停止・破棄といった管理ができる仕組
みのことをDocker Composeと呼ぶ。
• コンテナを使う仕組みそのもの
• 1度のコマンドで1つのコンテナを操作できる
• コンテナを定義するためのツール
• 1度のコマンドで複数のコンテナを操作できる
Agenda
©2023 ARISE analytics Reserved. 14
1.背景と目的
2.Dockerとは
3.Dockerの使い方
4.超便利!Docker+VSCode
5.まとめ
4.超便利!Dev Containers
①ARISEで個人的によく見る構成
©2023 ARISE analytics Reserved. 15
ARISEの開発する際のリポジトリには.devcontainerというフォルダが入っている。
これはVSCodeの拡張機能であるDev Containersを使うためのものであり、開発する上
で非常に便利なものとなっている。
.devcontainer
devcontainer.json
docker-compose.yml
Dockerfile
src
4.超便利!Docker+VSCode
②Dev Containersとは
©2023 ARISE analytics Reserved. 16
入社してはじめてこれを使った時は感動して、今まで知らなかったことを後悔しました・・・
Dev ContainsersとはVSCodeとコンテナを接続する拡張機能である。
コンテナで実行環境を揃えるだけでなく、VSCodeで使用するターミナルの設定や使用する
拡張機能の設定ができるため、開発者間でVSCodeの環境を揃えることができる。
extensionsでVSCodeの拡張機能も設定する
ことができる
4.超便利!Docker+VSCode
③Dev Containersを使ってみよう!(1/2)
©2023 ARISE analytics Reserved. 17
Dev Containersを使ってDjango+PostgreSQLの開発環境を構築した場合、プログ
ラムやライブラリのインストールを実施する必要がないため従来の構築手順に比べてスムーズ
に作業が完了する。
従来の構築手順
開発環境の構築手順は以下の通り。
1. Pythonをインストール
2. pipでDjango等必要なライブラリをインストール
3. Postgresをインストール
4. VSCodeの拡張機能のインストール
Dev Containersを使うと・・・
開発環境の構築手順は以下の通り。
1. コンテナを起動する
• 環境構築で実行するコマンド/ダウンロードするも
のが多く時間がかかる
• VSCodeの拡張機能が増えまくる
• Windows/Macで手順が変わる
• Dev Containersでコンテナを起動するだけで必
要なもののインストールが完了する
• 余分なVSCodeの拡張機能を入れずに済む
• Windows/Macに依存しない※Appleシリコンは例外
©2023 ARISE analytics Reserved. 18
Dev Containersでコンテナを起動するだけでPythonやDjangoの操作が可能になって
いる。従来の構築手順に比べて簡単に環境構築が完了するほか、.devcontainerフォ
ルダを連携するだけで開発者間で環境を統一できる。
4.超便利!Docker+VSCode
③Dev Containersを使ってみよう!(2/2)
コンテナ起動前 コンテナ起動後
5.まとめ
©2023 ARISE analytics Reserved. 19
• Dockerには プログラムの干渉を防ぐ, IaCを実現できる, 可搬性がある という特徴が
ある
• VSCode+Dev Containersを使うことにより開発環境をメンバー間で簡単に共有でき、
スムーズに開発をはじめることができるようになる
Appendix – 参考資料
©2023 ARISE analytics Reserved. 20
仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん
Docker&仮想サーバー完全入門 Webクリエイター&エンジニアの作業がはかどる
開発環境構築ガイド
とりあえずDockerやDocker Composeについて知りたい!使ってみたい!って人におすすめ。
UbuntuやDjangoなど、すぐに使えるコンテナ設定ファイルの使い方や各種設定の説明なども
書かれているのも個人的に嬉しかった。
Dev Containersの話が最後のAppendixに書いてある。
Dockerがどう動いているのかといった仕組みの部分をわかりやすく解説してくれるのでとてもよかっ
た。
Dockerコマンドの解説も手厚く、マウント周りのわかりにくい部分の説明も丁寧にされていたので
これを読んでかなり理解が進んだ。
Kubernetesの解説も丁寧に書かれているのでめちゃくちゃおすすめ。
Appendix – AppleシリコンMacでDockerを使う場合
©2023 ARISE analytics Reserved. 21
DockerにはIntelアーキテクチャに対応したイメージファイルが豊富にあるが、Appleシリコン
に対応しているものは少ない。
AppleシリコンでIntelアーキテクチャ用イメージを使う方法もあるが、うまく動かなかったりパ
フォーマンスが悪いなど様々な弊害が生じる可能性がある。
ARMに対応しているのでAppleシリコンでも使用可!
ARMに対応していないのでAppleシリコンでは使用不可・・・
“platform linux/amd64 “というオプションを使えばコンテ
ナの作成は可能だが「ベストエフォートである」と言われている
Best Partner for innovation, Best Creator for the future.

More Related Content

Similar to めんどうな環境構築とはおさらば!Dockerの概要と使い方

Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイルVisual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイルAkira Inoue
 
Web系エンジニアのためのスキルアップ講座 ーDockerで開発環境を作ろう ー
Web系エンジニアのためのスキルアップ講座 ーDockerで開発環境を作ろう ーWeb系エンジニアのためのスキルアップ講座 ーDockerで開発環境を作ろう ー
Web系エンジニアのためのスキルアップ講座 ーDockerで開発環境を作ろう ーYosuke INOUE
 
開発サイクルを爆速にする!~ Azure DevOpsでアプリのビルド・デプロイを自動化 ~
開発サイクルを爆速にする!~ Azure DevOpsでアプリのビルド・デプロイを自動化 ~開発サイクルを爆速にする!~ Azure DevOpsでアプリのビルド・デプロイを自動化 ~
開発サイクルを爆速にする!~ Azure DevOpsでアプリのビルド・デプロイを自動化 ~KojiKono1
 
Googleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsGoogleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsEtsuji Nakai
 
【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践
【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践
【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践日本マイクロソフト株式会社
 
Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドラ...
Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドラ...Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドラ...
Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドラ...さくらインターネット株式会社
 
Dockerを徹底活用したSoftLayer環境にお けるディープラーニング開発環境の構築 - Alpaca Cloud Days発表資料
Dockerを徹底活用したSoftLayer環境にお けるディープラーニング開発環境の構築 - Alpaca Cloud Days発表資料Dockerを徹底活用したSoftLayer環境にお けるディープラーニング開発環境の構築 - Alpaca Cloud Days発表資料
Dockerを徹底活用したSoftLayer環境にお けるディープラーニング開発環境の構築 - Alpaca Cloud Days発表資料Tomoya Kitayama
 
【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT
【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT
【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoTcloudconductor
 
【CNDT2022】SIerで実践!クラウドネイティブを普及させる取り組み
【CNDT2022】SIerで実践!クラウドネイティブを普及させる取り組み【CNDT2022】SIerで実践!クラウドネイティブを普及させる取り組み
【CNDT2022】SIerで実践!クラウドネイティブを普及させる取り組みYuta Shimada
 
Dockerで開発環境をデリバる
Dockerで開発環境をデリバるDockerで開発環境をデリバる
Dockerで開発環境をデリバるDaigou Harada
 
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座DIVE INTO CODE Corp.
 
Docker Community Edition & Enterprise Edition
Docker Community Edition & Enterprise EditionDocker Community Edition & Enterprise Edition
Docker Community Edition & Enterprise EditionCreationline,inc.
 
DevOps 概要 - インフラ革命、今起きていること
DevOps 概要 - インフラ革命、今起きていることDevOps 概要 - インフラ革命、今起きていること
DevOps 概要 - インフラ革命、今起きていることHiro Fukami
 
DevOps時代到来!Engine YardのPaaSで変わるシステムの開発と運用のあり方
DevOps時代到来!Engine YardのPaaSで変わるシステムの開発と運用のあり方DevOps時代到来!Engine YardのPaaSで変わるシステムの開発と運用のあり方
DevOps時代到来!Engine YardのPaaSで変わるシステムの開発と運用のあり方Takahiro Imanaka
 
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...NTT DATA Technology & Innovation
 
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話Yahoo!デベロッパーネットワーク
 
Drupal + Japan IT 2017
Drupal + Japan IT    2017Drupal + Japan IT    2017
Drupal + Japan IT 2017Hidekazu Ikeda
 
【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬
【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬
【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬日本マイクロソフト株式会社
 

Similar to めんどうな環境構築とはおさらば!Dockerの概要と使い方 (20)

Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイルVisual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
 
Web系エンジニアのためのスキルアップ講座 ーDockerで開発環境を作ろう ー
Web系エンジニアのためのスキルアップ講座 ーDockerで開発環境を作ろう ーWeb系エンジニアのためのスキルアップ講座 ーDockerで開発環境を作ろう ー
Web系エンジニアのためのスキルアップ講座 ーDockerで開発環境を作ろう ー
 
開発サイクルを爆速にする!~ Azure DevOpsでアプリのビルド・デプロイを自動化 ~
開発サイクルを爆速にする!~ Azure DevOpsでアプリのビルド・デプロイを自動化 ~開発サイクルを爆速にする!~ Azure DevOpsでアプリのビルド・デプロイを自動化 ~
開発サイクルを爆速にする!~ Azure DevOpsでアプリのビルド・デプロイを自動化 ~
 
Docker入門
Docker入門Docker入門
Docker入門
 
Googleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsGoogleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOps
 
【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践
【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践
【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践
 
Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドラ...
Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドラ...Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドラ...
Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドラ...
 
Dockerを徹底活用したSoftLayer環境にお けるディープラーニング開発環境の構築 - Alpaca Cloud Days発表資料
Dockerを徹底活用したSoftLayer環境にお けるディープラーニング開発環境の構築 - Alpaca Cloud Days発表資料Dockerを徹底活用したSoftLayer環境にお けるディープラーニング開発環境の構築 - Alpaca Cloud Days発表資料
Dockerを徹底活用したSoftLayer環境にお けるディープラーニング開発環境の構築 - Alpaca Cloud Days発表資料
 
Ti dd force09
Ti dd force09Ti dd force09
Ti dd force09
 
【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT
【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT
【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT
 
【CNDT2022】SIerで実践!クラウドネイティブを普及させる取り組み
【CNDT2022】SIerで実践!クラウドネイティブを普及させる取り組み【CNDT2022】SIerで実践!クラウドネイティブを普及させる取り組み
【CNDT2022】SIerで実践!クラウドネイティブを普及させる取り組み
 
Dockerで開発環境をデリバる
Dockerで開発環境をデリバるDockerで開発環境をデリバる
Dockerで開発環境をデリバる
 
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
 
Docker Community Edition & Enterprise Edition
Docker Community Edition & Enterprise EditionDocker Community Edition & Enterprise Edition
Docker Community Edition & Enterprise Edition
 
DevOps 概要 - インフラ革命、今起きていること
DevOps 概要 - インフラ革命、今起きていることDevOps 概要 - インフラ革命、今起きていること
DevOps 概要 - インフラ革命、今起きていること
 
DevOps時代到来!Engine YardのPaaSで変わるシステムの開発と運用のあり方
DevOps時代到来!Engine YardのPaaSで変わるシステムの開発と運用のあり方DevOps時代到来!Engine YardのPaaSで変わるシステムの開発と運用のあり方
DevOps時代到来!Engine YardのPaaSで変わるシステムの開発と運用のあり方
 
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
 
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
 
Drupal + Japan IT 2017
Drupal + Japan IT    2017Drupal + Japan IT    2017
Drupal + Japan IT 2017
 
【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬
【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬
【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬
 

More from ARISE analytics

【第3回生成AIなんでもLT会資料】_動画生成AIと物理法則_v0.2.pptx
【第3回生成AIなんでもLT会資料】_動画生成AIと物理法則_v0.2.pptx【第3回生成AIなんでもLT会資料】_動画生成AIと物理法則_v0.2.pptx
【第3回生成AIなんでもLT会資料】_動画生成AIと物理法則_v0.2.pptxARISE analytics
 
【第3回】生成AIなんでもLT会 2024_0304なんでも生成AI_sergicalsix.pptx
【第3回】生成AIなんでもLT会 2024_0304なんでも生成AI_sergicalsix.pptx【第3回】生成AIなんでもLT会 2024_0304なんでも生成AI_sergicalsix.pptx
【第3回】生成AIなんでもLT会 2024_0304なんでも生成AI_sergicalsix.pptxARISE analytics
 
【論文レベルで理解しよう!】​ 欠測値処理編​
【論文レベルで理解しよう!】​ 欠測値処理編​【論文レベルで理解しよう!】​ 欠測値処理編​
【論文レベルで理解しよう!】​ 欠測値処理編​ARISE analytics
 
【論文レベルで理解しよう!】​ 大規模言語モデル(LLM)編​
【論文レベルで理解しよう!】​ 大規模言語モデル(LLM)編​【論文レベルで理解しよう!】​ 大規模言語モデル(LLM)編​
【論文レベルで理解しよう!】​ 大規模言語モデル(LLM)編​ARISE analytics
 
【論文読み会】Signing at Scale: Learning to Co-Articulate Signs for Large-Scale Pho...
【論文読み会】Signing at Scale: Learning to Co-Articulate  Signs for Large-Scale Pho...【論文読み会】Signing at Scale: Learning to Co-Articulate  Signs for Large-Scale Pho...
【論文読み会】Signing at Scale: Learning to Co-Articulate Signs for Large-Scale Pho...ARISE analytics
 
Hierarchical Metadata-Aware Document Categorization under Weak Supervision​ (...
Hierarchical Metadata-Aware Document Categorization under Weak Supervision​ (...Hierarchical Metadata-Aware Document Categorization under Weak Supervision​ (...
Hierarchical Metadata-Aware Document Categorization under Weak Supervision​ (...ARISE analytics
 
教師なしGNNによるIoTデバイスの異常通信検知の検討
教師なしGNNによるIoTデバイスの異常通信検知の検討教師なしGNNによるIoTデバイスの異常通信検知の検討
教師なしGNNによるIoTデバイスの異常通信検知の検討ARISE analytics
 
【論文読み会】Pyraformer_Low-Complexity Pyramidal Attention for Long-Range Time Seri...
【論文読み会】Pyraformer_Low-Complexity Pyramidal Attention for Long-Range Time Seri...【論文読み会】Pyraformer_Low-Complexity Pyramidal Attention for Long-Range Time Seri...
【論文読み会】Pyraformer_Low-Complexity Pyramidal Attention for Long-Range Time Seri...ARISE analytics
 
【論文読み会】Analytic-DPM_an Analytic Estimate of the Optimal Reverse Variance in D...
【論文読み会】Analytic-DPM_an Analytic Estimate of the Optimal Reverse Variance in D...【論文読み会】Analytic-DPM_an Analytic Estimate of the Optimal Reverse Variance in D...
【論文読み会】Analytic-DPM_an Analytic Estimate of the Optimal Reverse Variance in D...ARISE analytics
 
【論文読み会】Autoregressive Diffusion Models.pptx
【論文読み会】Autoregressive Diffusion Models.pptx【論文読み会】Autoregressive Diffusion Models.pptx
【論文読み会】Autoregressive Diffusion Models.pptxARISE analytics
 
【論文読み会】BEiT_BERT Pre-Training of Image Transformers.pptx
【論文読み会】BEiT_BERT Pre-Training of Image Transformers.pptx【論文読み会】BEiT_BERT Pre-Training of Image Transformers.pptx
【論文読み会】BEiT_BERT Pre-Training of Image Transformers.pptxARISE analytics
 
【論文読み会】PiCO_Contrastive Label Disambiguation for Partial Label Learning.pptx
【論文読み会】PiCO_Contrastive Label Disambiguation for Partial Label Learning.pptx【論文読み会】PiCO_Contrastive Label Disambiguation for Partial Label Learning.pptx
【論文読み会】PiCO_Contrastive Label Disambiguation for Partial Label Learning.pptxARISE analytics
 
【論文読み会】Deep Reinforcement Learning at the Edge of the Statistical Precipice
【論文読み会】Deep Reinforcement Learning at the Edge of the Statistical Precipice【論文読み会】Deep Reinforcement Learning at the Edge of the Statistical Precipice
【論文読み会】Deep Reinforcement Learning at the Edge of the Statistical PrecipiceARISE analytics
 
【論文読み会】Alias-Free Generative Adversarial Networks(StyleGAN3)
【論文読み会】Alias-Free Generative Adversarial Networks(StyleGAN3)【論文読み会】Alias-Free Generative Adversarial Networks(StyleGAN3)
【論文読み会】Alias-Free Generative Adversarial Networks(StyleGAN3)ARISE analytics
 
【論文読み会】On the Expressivity of Markov Reward
【論文読み会】On the Expressivity of Markov Reward【論文読み会】On the Expressivity of Markov Reward
【論文読み会】On the Expressivity of Markov RewardARISE analytics
 
【論文読み会】MAUVE: Measuring the Gap Between Neural Text and Human Text using Dive...
【論文読み会】MAUVE: Measuring the Gap Between Neural Text and Human Text using Dive...【論文読み会】MAUVE: Measuring the Gap Between Neural Text and Human Text using Dive...
【論文読み会】MAUVE: Measuring the Gap Between Neural Text and Human Text using Dive...ARISE analytics
 
【論文読み会】Moser Flow: Divergence-based Generative Modeling on Manifolds
【論文読み会】Moser Flow: Divergence-based Generative Modeling on Manifolds【論文読み会】Moser Flow: Divergence-based Generative Modeling on Manifolds
【論文読み会】Moser Flow: Divergence-based Generative Modeling on ManifoldsARISE analytics
 
Counterfaual Machine Learning(CFML)のサーベイ
Counterfaual Machine Learning(CFML)のサーベイCounterfaual Machine Learning(CFML)のサーベイ
Counterfaual Machine Learning(CFML)のサーベイARISE analytics
 
【論文読み会】Deep Clustering for Unsupervised Learning of Visual Features
【論文読み会】Deep Clustering for Unsupervised Learning of Visual Features【論文読み会】Deep Clustering for Unsupervised Learning of Visual Features
【論文読み会】Deep Clustering for Unsupervised Learning of Visual FeaturesARISE analytics
 
【論文読み会】Self-Attention Generative Adversarial Networks
【論文読み会】Self-Attention Generative  Adversarial Networks【論文読み会】Self-Attention Generative  Adversarial Networks
【論文読み会】Self-Attention Generative Adversarial NetworksARISE analytics
 

More from ARISE analytics (20)

【第3回生成AIなんでもLT会資料】_動画生成AIと物理法則_v0.2.pptx
【第3回生成AIなんでもLT会資料】_動画生成AIと物理法則_v0.2.pptx【第3回生成AIなんでもLT会資料】_動画生成AIと物理法則_v0.2.pptx
【第3回生成AIなんでもLT会資料】_動画生成AIと物理法則_v0.2.pptx
 
【第3回】生成AIなんでもLT会 2024_0304なんでも生成AI_sergicalsix.pptx
【第3回】生成AIなんでもLT会 2024_0304なんでも生成AI_sergicalsix.pptx【第3回】生成AIなんでもLT会 2024_0304なんでも生成AI_sergicalsix.pptx
【第3回】生成AIなんでもLT会 2024_0304なんでも生成AI_sergicalsix.pptx
 
【論文レベルで理解しよう!】​ 欠測値処理編​
【論文レベルで理解しよう!】​ 欠測値処理編​【論文レベルで理解しよう!】​ 欠測値処理編​
【論文レベルで理解しよう!】​ 欠測値処理編​
 
【論文レベルで理解しよう!】​ 大規模言語モデル(LLM)編​
【論文レベルで理解しよう!】​ 大規模言語モデル(LLM)編​【論文レベルで理解しよう!】​ 大規模言語モデル(LLM)編​
【論文レベルで理解しよう!】​ 大規模言語モデル(LLM)編​
 
【論文読み会】Signing at Scale: Learning to Co-Articulate Signs for Large-Scale Pho...
【論文読み会】Signing at Scale: Learning to Co-Articulate  Signs for Large-Scale Pho...【論文読み会】Signing at Scale: Learning to Co-Articulate  Signs for Large-Scale Pho...
【論文読み会】Signing at Scale: Learning to Co-Articulate Signs for Large-Scale Pho...
 
Hierarchical Metadata-Aware Document Categorization under Weak Supervision​ (...
Hierarchical Metadata-Aware Document Categorization under Weak Supervision​ (...Hierarchical Metadata-Aware Document Categorization under Weak Supervision​ (...
Hierarchical Metadata-Aware Document Categorization under Weak Supervision​ (...
 
教師なしGNNによるIoTデバイスの異常通信検知の検討
教師なしGNNによるIoTデバイスの異常通信検知の検討教師なしGNNによるIoTデバイスの異常通信検知の検討
教師なしGNNによるIoTデバイスの異常通信検知の検討
 
【論文読み会】Pyraformer_Low-Complexity Pyramidal Attention for Long-Range Time Seri...
【論文読み会】Pyraformer_Low-Complexity Pyramidal Attention for Long-Range Time Seri...【論文読み会】Pyraformer_Low-Complexity Pyramidal Attention for Long-Range Time Seri...
【論文読み会】Pyraformer_Low-Complexity Pyramidal Attention for Long-Range Time Seri...
 
【論文読み会】Analytic-DPM_an Analytic Estimate of the Optimal Reverse Variance in D...
【論文読み会】Analytic-DPM_an Analytic Estimate of the Optimal Reverse Variance in D...【論文読み会】Analytic-DPM_an Analytic Estimate of the Optimal Reverse Variance in D...
【論文読み会】Analytic-DPM_an Analytic Estimate of the Optimal Reverse Variance in D...
 
【論文読み会】Autoregressive Diffusion Models.pptx
【論文読み会】Autoregressive Diffusion Models.pptx【論文読み会】Autoregressive Diffusion Models.pptx
【論文読み会】Autoregressive Diffusion Models.pptx
 
【論文読み会】BEiT_BERT Pre-Training of Image Transformers.pptx
【論文読み会】BEiT_BERT Pre-Training of Image Transformers.pptx【論文読み会】BEiT_BERT Pre-Training of Image Transformers.pptx
【論文読み会】BEiT_BERT Pre-Training of Image Transformers.pptx
 
【論文読み会】PiCO_Contrastive Label Disambiguation for Partial Label Learning.pptx
【論文読み会】PiCO_Contrastive Label Disambiguation for Partial Label Learning.pptx【論文読み会】PiCO_Contrastive Label Disambiguation for Partial Label Learning.pptx
【論文読み会】PiCO_Contrastive Label Disambiguation for Partial Label Learning.pptx
 
【論文読み会】Deep Reinforcement Learning at the Edge of the Statistical Precipice
【論文読み会】Deep Reinforcement Learning at the Edge of the Statistical Precipice【論文読み会】Deep Reinforcement Learning at the Edge of the Statistical Precipice
【論文読み会】Deep Reinforcement Learning at the Edge of the Statistical Precipice
 
【論文読み会】Alias-Free Generative Adversarial Networks(StyleGAN3)
【論文読み会】Alias-Free Generative Adversarial Networks(StyleGAN3)【論文読み会】Alias-Free Generative Adversarial Networks(StyleGAN3)
【論文読み会】Alias-Free Generative Adversarial Networks(StyleGAN3)
 
【論文読み会】On the Expressivity of Markov Reward
【論文読み会】On the Expressivity of Markov Reward【論文読み会】On the Expressivity of Markov Reward
【論文読み会】On the Expressivity of Markov Reward
 
【論文読み会】MAUVE: Measuring the Gap Between Neural Text and Human Text using Dive...
【論文読み会】MAUVE: Measuring the Gap Between Neural Text and Human Text using Dive...【論文読み会】MAUVE: Measuring the Gap Between Neural Text and Human Text using Dive...
【論文読み会】MAUVE: Measuring the Gap Between Neural Text and Human Text using Dive...
 
【論文読み会】Moser Flow: Divergence-based Generative Modeling on Manifolds
【論文読み会】Moser Flow: Divergence-based Generative Modeling on Manifolds【論文読み会】Moser Flow: Divergence-based Generative Modeling on Manifolds
【論文読み会】Moser Flow: Divergence-based Generative Modeling on Manifolds
 
Counterfaual Machine Learning(CFML)のサーベイ
Counterfaual Machine Learning(CFML)のサーベイCounterfaual Machine Learning(CFML)のサーベイ
Counterfaual Machine Learning(CFML)のサーベイ
 
【論文読み会】Deep Clustering for Unsupervised Learning of Visual Features
【論文読み会】Deep Clustering for Unsupervised Learning of Visual Features【論文読み会】Deep Clustering for Unsupervised Learning of Visual Features
【論文読み会】Deep Clustering for Unsupervised Learning of Visual Features
 
【論文読み会】Self-Attention Generative Adversarial Networks
【論文読み会】Self-Attention Generative  Adversarial Networks【論文読み会】Self-Attention Generative  Adversarial Networks
【論文読み会】Self-Attention Generative Adversarial Networks
 

Recently uploaded

自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 

Recently uploaded (9)

自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 

めんどうな環境構築とはおさらば!Dockerの概要と使い方

  • 1. めんどうな環境構築とはおさらば! Dockerの概要と使い方 Marketing Solution Div. Service Design Unit Drone PF Team 森 祐子 ©2023 ARISE analytics Reserved. 2023/12/01
  • 2. Agenda ©2023 ARISE analytics Reserved. 1 1.背景と目的 2.Dockerとは 3.Dockerの使い方 4.超便利!Docker+VSCode 5.まとめ
  • 3. 1.背景と目的 ©2023 ARISE analytics Reserved. 2 背景 ⚫ 変化の激しいビジネスニーズにこた えるにはスピーディかつ効率的に開 発を進めることが重要 ⚫ 開発言語やライブラリが多様にあり、 開発環境の構築に時間がかかる 目的 ⚫ Dockerによる環境構築の利点 を共有し、いかに便利か知ってほ しい 本資料ではスピーディかつ効率的に開発環境を構築できるDockerについて説明し、 Dockerがどういう技術で何が便利なのかを共有することを目的としている。
  • 4. Agenda ©2023 ARISE analytics Reserved. 3 1.背景と目的 2.Dockerとは 3.Dockerの使い方 4.超便利!Docker+VSCode 5.まとめ
  • 5. 2.Dockerとは ①環境構築の苦労話・・・ ©2023 ARISE analytics Reserved. 4 かつてはライブラリのバージョンが案件ごとに異なっていたり、様々なソフトウェアを導入する必 要があり開発環境の構築に非常に時間がかかった。 コンテナを使うことにより、環境構築をスムーズにかつローカルPCの環境に依存することなく開 発を進めることができる。 前職での苦労 案件ごとにNodeのバージョン 切り替えるのめんどくさい・・・ インストールしないといけないも のが多すぎてめんどくさい・・・ 他の人は順調なのに、自分の 環境だけうまくいかない・・・ コンテナ技術を使えば コンテナを使えばバージョンを 意識しなくていい! PCに直接インストールしないの で環境を汚さずに済む! 同じ環境を開発メンバー間で 共有できる!
  • 6. 2.Dockerとは ②Dockerの概要 ©2023 ARISE analytics Reserved. 5 Dockerとはコンテナを使用できる仕組みのことである。 Linuxを前提としているため、Windows/MacでDockerを使う場合はDocker DesktopのようなDockerの実行に必要なLinuxを含むパッケージを導入する。 ホストOS Python MySQL Apache コンテナ コンテナはプログラムやシステムを隔離するもので、イメージファイ ルから作成される。 イメージファイルはコンテナのテンプレートファイルであり、簡単に連 携できる。
  • 7. 2.Dockerとは ③Dockerを使うと何がうれしいの? ©2023 ARISE analytics Reserved. 6 Dockerを使うことでプログラム同士の干渉を防げる/IaCを実現できる/可搬性がある というメリットがあるため、開発環境をメンバー間で簡単に共有でき、スムーズに構築するこ とができる。 プログラムの干渉を防ぐ IaCを実現できる 可搬性がある コンテナで隔離された環境下でプロ グラムやソフトウェアをインストールす るので、互いの干渉による不具合 を防げる。 どんなコンテナを作るか、といった手 順をまとめたイメージファイルを連携 するため、それを元にコンテナを作る だけで環境構築が完了する。 コンテナを定義するイメージファイル は連携可能なため、異なるマシンで も同じ環境を簡単に再現することが できる。
  • 8. Agenda ©2023 ARISE analytics Reserved. 7 1.背景と目的 2.Dockerとは 3.Dockerの使い方 4.超便利!Docker+VSCode 5.まとめ
  • 9. 3.Dockerの使い方 ①Dockerコマンド(1/2) ©2023 ARISE analytics Reserved. 8 他にもバインドマウントを使ってローカルPCのファイルをDockerコンテナにマウントすることができる DockerはDockerコマンドを使ってコンテナの作成/起動/停止/削除といった操作を行 うことができる。例として、MySQLのイメージを使ってコンテナの作成、起動を実施するコマン ドは以下のようになる。 ① ② コマンド解説 ① -v docker_volume:/var/lib/mysql コンテナを削除するとデータも消えてしまうので、コンテナ内のデータをDockerが管理するコンテナ用の保存領域にマウントし ている(ボリュームマウント) ② -dit d: バックグラウンド実行。指定しないと起動したコンテナがコンソールの制御を握ってしまい、実行中はコマンドを打てない。 i: コンテナにキーボードをつなぐ。コンテナの中身をキーボードで操作するのに必要。 t: 特殊キーを使用可能にする。コンテナの中身をキーボードで操作するのに必要。
  • 10. 3.Dockerの使い方 ①Dockerコマンド(2/2) ©2023 ARISE analytics Reserved. 9 Dockerコマンドでコンテナを作成後、コンテナ内でMySQLの操作が可能となっている。 Dockerのボリュームを確認するとMySQLのデータが格納されているためデータの永続化を 実現できる。 execコマンドを使い、実行中のコンテナ内で MySQLを操作してtestテーブルを作成する マウント先として指定したdocker_volume内 に先ほど作成したtestテーブルのデータが格納さ れている
  • 11. 3.Dockerの使い方 ②Dockerfile(1/2) ©2023 ARISE analytics Reserved. 10 ソフトウェアのインストールやファイルのコピーを行ったカスタムイメージを作りたい場合は Dockerfileを使用する。 Dockerfileとはどんなイメージを作るのか設定を記述するファイルであり、イメージのビルド時 に実行したいコマンドを書いておくことができる。 image Dockerfile コンテナ
  • 12. 3.Dockerの使い方 ②Dockerfile(2/2) ©2023 ARISE analytics Reserved. 11 例えばDjangoが実行できるコンテナをDockerで構築したい場合はPythonが実行できる 環境下でDjangoをインストールする必要があるため、Dockerfileを使ってカスタムイメージ を作成します。 Djangoの実行環境を整えるのに必要な手順 ① pythonのイメージファイルを指定 ② (任意)標準入出力に関するPythonのバッ ファリングを無効にする ③ workspaceという名前のフォルダを作成し、そ こを作業フォルダとして指定する ④ requirements.txtをworkspace内にコ ピーしてpip installを実行し、Djangoをイン ストールする ① ② ③ ④
  • 13. 3.Dockerの使い方 ④docker-compose.yml ©2023 ARISE analytics Reserved. 12 作成したいコンテナの定義値をdocker-compose.ymlに記載する。 ファイルを連携することで開発者間で同じコンテナを再現することができる。 ①DBコンテナ ②Webアプリ用コンテナ Dockerfileはコンテナの元となるイメージの設定ファイル、docker-compose.ymlはコンテナ自体 の設定ファイル ①DBコンテナ MySQLのイメージを使ってDBコンテナを構築する。 ②Webアプリ用コンテナ カスタムイメージを使うためbuildでDockerfileの 格納場所を相対パスで指定する。
  • 14. 3.Dockerの使い方 ③Docker Compose ©2023 ARISE analytics Reserved. 13 Docker ComposeはDocker Desktopに標準装備されている Dockerコマンドだと設定が多くなればなるほどコマンド文が長くなってしまう上に、1度に1つ のコンテナしか操作できないため複数のコンテナで構成するシステムを作る際に不便となる。 複数のコンテナを1つの定義ファイルでまとめて実行・停止・破棄といった管理ができる仕組 みのことをDocker Composeと呼ぶ。 • コンテナを使う仕組みそのもの • 1度のコマンドで1つのコンテナを操作できる • コンテナを定義するためのツール • 1度のコマンドで複数のコンテナを操作できる
  • 15. Agenda ©2023 ARISE analytics Reserved. 14 1.背景と目的 2.Dockerとは 3.Dockerの使い方 4.超便利!Docker+VSCode 5.まとめ
  • 16. 4.超便利!Dev Containers ①ARISEで個人的によく見る構成 ©2023 ARISE analytics Reserved. 15 ARISEの開発する際のリポジトリには.devcontainerというフォルダが入っている。 これはVSCodeの拡張機能であるDev Containersを使うためのものであり、開発する上 で非常に便利なものとなっている。 .devcontainer devcontainer.json docker-compose.yml Dockerfile src
  • 17. 4.超便利!Docker+VSCode ②Dev Containersとは ©2023 ARISE analytics Reserved. 16 入社してはじめてこれを使った時は感動して、今まで知らなかったことを後悔しました・・・ Dev ContainsersとはVSCodeとコンテナを接続する拡張機能である。 コンテナで実行環境を揃えるだけでなく、VSCodeで使用するターミナルの設定や使用する 拡張機能の設定ができるため、開発者間でVSCodeの環境を揃えることができる。 extensionsでVSCodeの拡張機能も設定する ことができる
  • 18. 4.超便利!Docker+VSCode ③Dev Containersを使ってみよう!(1/2) ©2023 ARISE analytics Reserved. 17 Dev Containersを使ってDjango+PostgreSQLの開発環境を構築した場合、プログ ラムやライブラリのインストールを実施する必要がないため従来の構築手順に比べてスムーズ に作業が完了する。 従来の構築手順 開発環境の構築手順は以下の通り。 1. Pythonをインストール 2. pipでDjango等必要なライブラリをインストール 3. Postgresをインストール 4. VSCodeの拡張機能のインストール Dev Containersを使うと・・・ 開発環境の構築手順は以下の通り。 1. コンテナを起動する • 環境構築で実行するコマンド/ダウンロードするも のが多く時間がかかる • VSCodeの拡張機能が増えまくる • Windows/Macで手順が変わる • Dev Containersでコンテナを起動するだけで必 要なもののインストールが完了する • 余分なVSCodeの拡張機能を入れずに済む • Windows/Macに依存しない※Appleシリコンは例外
  • 19. ©2023 ARISE analytics Reserved. 18 Dev Containersでコンテナを起動するだけでPythonやDjangoの操作が可能になって いる。従来の構築手順に比べて簡単に環境構築が完了するほか、.devcontainerフォ ルダを連携するだけで開発者間で環境を統一できる。 4.超便利!Docker+VSCode ③Dev Containersを使ってみよう!(2/2) コンテナ起動前 コンテナ起動後
  • 20. 5.まとめ ©2023 ARISE analytics Reserved. 19 • Dockerには プログラムの干渉を防ぐ, IaCを実現できる, 可搬性がある という特徴が ある • VSCode+Dev Containersを使うことにより開発環境をメンバー間で簡単に共有でき、 スムーズに開発をはじめることができるようになる
  • 21. Appendix – 参考資料 ©2023 ARISE analytics Reserved. 20 仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん Docker&仮想サーバー完全入門 Webクリエイター&エンジニアの作業がはかどる 開発環境構築ガイド とりあえずDockerやDocker Composeについて知りたい!使ってみたい!って人におすすめ。 UbuntuやDjangoなど、すぐに使えるコンテナ設定ファイルの使い方や各種設定の説明なども 書かれているのも個人的に嬉しかった。 Dev Containersの話が最後のAppendixに書いてある。 Dockerがどう動いているのかといった仕組みの部分をわかりやすく解説してくれるのでとてもよかっ た。 Dockerコマンドの解説も手厚く、マウント周りのわかりにくい部分の説明も丁寧にされていたので これを読んでかなり理解が進んだ。 Kubernetesの解説も丁寧に書かれているのでめちゃくちゃおすすめ。
  • 22. Appendix – AppleシリコンMacでDockerを使う場合 ©2023 ARISE analytics Reserved. 21 DockerにはIntelアーキテクチャに対応したイメージファイルが豊富にあるが、Appleシリコン に対応しているものは少ない。 AppleシリコンでIntelアーキテクチャ用イメージを使う方法もあるが、うまく動かなかったりパ フォーマンスが悪いなど様々な弊害が生じる可能性がある。 ARMに対応しているのでAppleシリコンでも使用可! ARMに対応していないのでAppleシリコンでは使用不可・・・ “platform linux/amd64 “というオプションを使えばコンテ ナの作成は可能だが「ベストエフォートである」と言われている
  • 23. Best Partner for innovation, Best Creator for the future.