generated at
docker

結論
Dockerのなにが便利なのか
ホストOSを汚さずに仮想OSを作れる
仮想OSで失敗しようが壊そうがホストOSには影響しないので問題ない
仮想OSで安全にいろいろな開発・実験できる
仮想OSの構築手順を、手続き的に記述できる
仮想OSをコマンドで管理できる
複数の仮想OSを連携させることができる
プログラミングの勉強とかやるときはできればなるべくDockerを使って仮想OS上で試行錯誤したほうがいい
ホストOSでいろいろ実験すると壊れて面倒なことになる
Dockerをそのままクラウドインフラ上にリリースできるようになりつつある
手元で動いているのとまったく同じ状態で全世界に公開できる


本日のゴール
docker, docker-composeをセットアップ
自分でDockerイメージを作って実験に使えるようになる
Cloud Runを使ってDockerイメージをリリースする


dockerコマンドをインストールする
Windowsの場合
Docker Desktopをインストールする
macOSの場合
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
brew cask install docker
Linuxの場合
(やや面倒だけどこの手順通りにやらないと余計に面倒なことになる)
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io


Docker超入門
用語
イメージ/image
OSの状態を表す概念
例えるならクッキーの型
コンテナ/container
イメージを動かしている実体
例えるならクッキーそのもの
Hello World
docker run hello-world
Hello Worldに加えてごちゃごちゃと説明が表示されるはず
Ubuntuを起動してみよう
docker pull ubuntu
docker run --name ubu -it ubuntu
root@XXXXX:/# ってなるはず
ぶっこわしてみよう
rm -rf /
ルートファイルシステムをすべて削除するというコマンド
つまりHDD全削除
ホストOSでこれをやらないように
再起不能になります
消してみよう
docker rm ubu
Webサーバーを起動してみよう
docker pull nginx
nginxというWebサーバーの一種
起動
docker run -p 8080:80 --name web nginx
確認
消す
docker rm web
Railsをセットアップしてみよう



Dockerの基本的コマンドを知っておこう
イメージを指定してコンテナを起動
docker run --name [container-name] -it [image-name]
docker run --name web -it nginx
起動しているコンテナの一覧
docker ps
止まっているコンテナも含めた一覧
docker ps -a
起動しているコンテナにattachする
docker attach [container-name]
コンテナにattachする=仮想OSの標準出力を現在の端末 | ターミナル | Terminalに出力する
停止しているコンテナを起動する
docker start [container-name]
起動しているコンテナを停止する
docker stop [container-name]
イメージの一覧
docker images
イメージの削除
docker rmi [image-name]
コンテナをイメージにする
docker commit [container-name] [image-name]


独自のDockerイメージを作ってみよう
cd ~
mkdir cowsay
cd cowsay
touch Dockerfile
Dockerfile
FROM ubuntu:latest RUN apt-get update RUN apt-get install cowsay -y CMD ["/usr/games/cowsay", "hello"]
docker build -t cowsay .
docker run cowsay


docker-composeコマンドをインストールする
Windowsの場合
Docker Toolboxに含まれているのでもうある
macOSの場合
brew install docker-compose
Linuxの場合
sudo apt install docker-compose


docker-composeを動かしてみる
bash
cd ~ git clone https://github.com/yuiseki/study-docker cd study-docker docker-compose build docker-compose up
ブラウザで以下のURLを開く




参考文献