コンテンツにスキップ

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

資料

メモ

覚えてほしい図

image.png (270.6 kB)

コンテナの操作

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の仕組み

image.png (160.7 kB)

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/