Docker
Docker & Kubernetesのきほんのきほん
Chapter1 Dockerとはなんだろう
Chapter2 Dockerが動く仕組み
Chapter3 Dockerを使ってみよう
Chapter4 Dockerにコンテナを入れて動かしてみよう
Chapter5 Dockerに複数コンテナを入れて動かしてみよう
Chapter6 応用的なコンテナの使い方を身につけよう
Chapter7 Docker Composeについて学ぼう
Chapter8 Kubernetesについて学ぼう
Dockerイメージの理解を目指すチュートリアル
Dockerfileをできるだけ自分で書かない、書くときは公式イメージをマルチステージビルドで成果物を取り寄せる。再現性を重視するために本番、ステージング、テスト、ローカル全てで同じイメージでビルドできるようにする。(差分は環境変数を差し込む)
くらいのことはできて当然だと思ってるけど、まぁみなさんのプロダクトは壊滅的なので、技術顧問業が捗ります。
Docker
サーバーと同じような開発環境を用意したい
ちょっと試したいサーバーアプリがあるけど、システムに直接インストールしたくない
macやwindowsじゃ動作しないlinuxプログラムを動かしたいなど
に使う
ホスト:dockerを動かしている環境のこと、自分のPC
docker:cpuやメモリのオーバーヘッドが少ない、超軽量な仮想マシンを作って動かせるもの、ただし仮想マシンのOSはlinuxのみ
コンテナ:1つのlinux仮想マシン
イメージ:コンテナを生成する元になるもの、OS丸ごとディスク全体をバックアップしたもの
docker hub:あらかじめよく使われる便利なイメージが登録されている、ここからイメージを取得して、それをベースに改造するのが一般利用方法
利用の流れ
1.docker hubのイメージを検索(search)
2.docker hubから使いたいイメージを取得(pull)
3.イメージからコンテナを生成して起動(run)
4.コンテナ内でコマンド実行(exec)
5.コンテナを停止(stop)
6.コンテナをイメージか(commit)
7.いらなくなったらコンテナを削除(rm)
8.いらなくなったらイメージを削除(rmi)
Udemy Dockerでアプリケーション実行環境作成
個人的docker composeおすすめtips6選
Docker composeでrosノードを起動
Udemy「ゼロからはじまるDockerによるアプリケーション実行環境構築」
1. はじめに
Dockerでの開発環境の構築方法を学ぶ
クラウド環境にDockerコンテナをデプロイする方法を学ぶ
2. Dockerを理解しよう
プログラムの実行環境を素早く立ち上げられる
再現性のある環境を用意できる
コンテナ型仮想化はコンテナを起動する限り、環境が変わっても同じ
コンテナはカーネルを共有できないので違うOSでは無理
3. Dockerのインストール
Docker DesktopかDocker Toolboxが必要
バインドマウント
Kubernetes
4. Dockerコンテナの実行
Dockerイメージとはコンテナ実行に必要なファイルをまとめたファイルシステム
Dockerイメージをビルドする際にDockerデーモンに送信するホストOS側のディレクトリのことをビルドコンテキスト
Dockerイメージを作成するときの指示書がDockerFile
Dockerfileを上から順番に処理
nginxコンテナの実行とデタッチドモードの解説
5. Automated Build
Automated Buildとは、GithubやBitbucketといったソースコードのホスティングサービスで
6. Docker Machine
Docker MachineはDockerEngineを搭載した仮想マシンの作成、起動、停止、再起動などをコマンドラインから実行できるツール
7. Dockerのネットワーク
ブリッジネットワーク
8. Dockerのデータ管理
9. Docker Compose
Docker composeは
開発環境や自動テストのとき
ymlファイルを元に、アプリケーションを立ち上げるためのイメージ
ymlは構造化されたデータを記述するファイル
1 Dockerfileを用意するかしようするイメージをDocker Hubなどに用意する
2 docker-compose.ymlを定義
3 docker-compose upを実行
Docker-composeを使用してDjangoの開発環境を構築
Docker-composeを使用してRuby on Railsの開発環境を構築
10. Docker Swarm
Swarm ModeとはDocker Engineの動作モード
Docker Engineで以下の機能をしようすることができる
ワードプレスの環境をyml情報をもとに作成する
Dockerfileの作り方を考え直したらすごく効率が上がった。
コンテナアプリケーション開発