docker
結論
Dockerのなにが便利なのか
仮想OSで失敗しようが壊そうがホストOSには影響しないので問題ない プログラミングの勉強とかやるときはできればなるべくDockerを使って仮想OS上で試行錯誤したほうがいい
ホストOSでいろいろ実験すると壊れて面倒なことになる
Dockerをそのままクラウドインフラ上にリリースできるようになりつつある
手元で動いているのとまったく同じ状態で全世界に公開できる
本日のゴール
docker, docker-composeをセットアップ
自分でDockerイメージを作って実験に使えるようになる
Cloud Runを使ってDockerイメージをリリースする
dockerコマンドをインストールする
Docker Desktopをインストールする
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
brew cask install docker
(やや面倒だけどこの手順通りにやらないと余計に面倒なことになる)
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に加えてごちゃごちゃと説明が表示されるはず
docker pull ubuntu
docker run --name ubu -it ubuntu
root@XXXXX:/#ってなるはず
ぶっこわしてみよう
rm -rf /
ルートファイルシステムをすべて削除するというコマンド
つまりHDD全削除
ホストOSでこれをやらないように
再起不能になります
消してみよう
docker rm ubu
Webサーバーを起動してみよう
docker pull nginx
起動
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]
停止しているコンテナを起動する
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
code:Dockerfile
FROM ubuntu:latest
RUN apt-get update
RUN apt-get install cowsay -y
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を動かしてみる
code:bash
cd ~
cd study-docker
docker-compose build
docker-compose up
ブラウザで以下のURLを開く
参考文献