Docker
see also: https://docs.docker.com/engine/install/ubuntu/
Uninstall Docker
sudo apt-get remove docker docker-engine docker.io containerd runc
Add base packages
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
Add gpg key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Verify gpg key
sudo apt-key fingerprint 0EBFCD88
Add remote repository
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
Install docker engine
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
Dockerグループにユーザを追加
sudo groupadd docker
sudo usermod -aG docker $USER
再起動後に起動
sudo systemctl enable docker
資料
覚えてほしい図
コンテナにソフトウェアの動作に必要なライブラリやミドルウェア,言語の動作環境をまとめている.
出典: 高良 真穂, Docker コンテナの必要性と基礎, H2 Kubernetes ハンズオン~Docker コンテナを運用のゲンバへ~, Internet Week 2018, https://www.nic.ad.jp/ja/materials/iw/2018/proceedings/h2/h2-takara-1.pdf
コンテナの操作
ubuntuコンテナを実行
docker run -it ubuntu:18.04 bash
ubuntuのバージョンをチェック
cat /etc/lsb-release
htopを入れてみる
apt-get update
apt-get install htop
htop
残骸
docker ps -a
containerに入ってhogeディレクトリを作成
docker run -it ubuntu:18.04 bash
> mkdir hoge
> ls
bin boot dev etc hoge home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
> exit
docker run -it ubuntu:18.04 bash
> ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
## hogeいない
DockerHubの操作
docker hubでDebianを検索
https://hub.docker.com/search?q=debian&type=image
docker run ubuntu:18.04の意味
https://hub.docker.com/_/ubuntu?tab=tags&page=1&name=18.04
docker pullとrunの仕組み
docker hubでnginxを検索して実行してみる
https://hub.docker.com/_/nginx
docker run --name some-nginx -d -p 8080:80 <<some-content-nginx>>
コンテナへアクセス
起動しているコンテナ一覧
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3b170ce3f841 nginx:stable "/docker-entrypoint.…" 7 seconds ago Up 6 seconds 0.0.0.0:8080->80/tcp some-nginx
ブラウザから ブラウザでアクセス(koyama-test0は自分のVM名)
http://koyama-test0:8080/
コンテナに入って作業
Nginxコンテナに入ってHTMLを変更
docker exec -it 3b170ce3f841 bash
root@3b170ce3f841:/# apt update
root@3b170ce3f841:/# apt install vim
root@3b170ce3f841:/# cd /usr/share/nginx/html
root@3b170ce3f841:/# cp index.html index.html.org
コンテナにボリュームマウント
ローカルのhtmlディレクトリをマウントしてHTMLを変更
mkdir html
cd html
index.htmlというファイルを作成する.
cat > index.html
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>this is title</title>
</head>
<body>
<h1>this is test page</title>
</body>
</html>
[Ctrl] + D
コンテナを起動する.
docker run -d -p 8100:80 -v $PWD:/usr/share/nginx/html nginx:stable
Ghostを動かす.
https://hub.docker.com/_/ghost
動かしてみる.管理画面にアクセスする(koyama-test0は自分のVM名に置き換える)
http://koyama-test0:3001/ghost/