目次:
dockerコンテナを作成してみる
ubuntuのイメージをもとにコンテナを作成・実行し、作成したコンテナでhelloworldを表示する
$ docker container run ubuntu:latest echo 'Hello World'
>>> Hello World
すでにubuntuのlatest(最新のイメージ)が入っていたのでリポジトリからとってくるようなことはせずただhello worldを出力した
docker実行環境確認
$ docker system info
Client:
Context: default
Debug Mode: false
Plugins:
app: Docker App (Docker Inc., v0.9.1-beta3)
buildx: Build with BuildKit (Docker Inc., v0.5.1-docker)
compose: Docker Compose (Docker Inc., 2.0.0-beta.1)
scan: Docker Scan (Docker Inc., v0.8.0)
Server:
Containers: 11 コンテナの数
Running: 1
Paused: 0
Stopped: 10
Images: 3
Server Version: 20.10.6 dockerのバージョン
Storage Driver: overlay2 ストレージドライバーの種類
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
userxattr: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Cgroup Version: 1
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: io.containerd.runtime.v1.linux runc io.containerd.runc.v2
Default Runtime: runc
Init Binary: docker-init
containerd version: 05f951a3781f4f2c1911b05e61c160e9c30eaa8e
runc version: 12644e614e25b05da6fd08a38ffa0cfe1903fdec
init version: de40ad0
Security Options:
seccomp
Profile: default
Kernel Version: 5.4.72-microsoft-standard-WSL2
Operating System: Docker Desktop
OSType: linux OSの種類
Architecture: x86_64 アーキテクチャ
CPUs: 8
Total Memory: 9.237GiB
Name: docker-desktop
ID: ODNB:5MX5:6OBG:42MC:VNCR:OJJF:TP3E:D7WM:FMVK:5YUU:AK6W:HGLE
Docker Root Dir: /var/lib/docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
WARNING: No blkio throttle.read_bps_device support
WARNING: No blkio throttle.write_bps_device support
WARNING: No blkio throttle.read_iops_device support
WARNING: No blkio throttle.write_iops_device support
docker system df ディスク利用状況
$ docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 3 3 120.1MB 5.613MB (4%)
Containers 11 1 1.116kB 0B (0%)
Local Volumes 1 1 10.32MB 0B (0%)
Build Cache 32 0 396MB 396MB
dockerを使用したwebサーバを構築する
nginxを使用する
$ docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
f7ec5a41d630: Pull complete
aa1efa14b3bf: Extracting 2.654MB/26.58MB
b78b95af9b17: Download complete
c7d6bca2b8dc: Download complete
cf16cd8e71e0: Download complete
0241c68333ef: Download complete
nginxイメージがダウンロードされている。
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
docker101tutorial latest f108ba0cc6df 2 hours ago 28MB
meri100ht/docker101tutorial latest f108ba0cc6df 2 hours ago 28MB
ubuntu latest 7e0aa2d69a15 2 weeks ago 72.7MB
alpine/git latest c99c7d810bc1 3 weeks ago 25.1MB
nginx latest 62d49f9bab67 4 weeks ago 133MB
dockerイメージを使用してnginxを動かす
使用するイメージはnginx
imagenginxを使ってwebserverという名前のdockerコンテナを起動。ブラウザからHTTP(80番ポート)でのアクセスを許可するために-pオプションでコンテナからの転送を許可している
-p 80:80 -ホストのポート80をコンテナのポート80にマップします
$ docker container run --name webserver -d -p 80:80 nginx
789a5e28f3d3199f2b59482f660c974fdb59455729dab113491786caeaf1c26f
docker: Error response from daemon: driver failed programming external connectivity on endpoint webserver (499d03f5142f3b1f78970f8bf05b356afceff22744feab8a0d63c7c23d717c93): Bind for 0.0.0.0:80 failed: port is already allocated.
$ docker container ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
01419f74cb77 docker101tutorial "/docker-entrypoint.…" 2 hours ago Up 2 hours 0.0.0.0:80->80/tcp, :::80->80/tcp docker-tutorial
さっきのチュートリアルで80番ポートを開けていたので、このコンテナを停止すればnginxでアクセスできそう
$ docker container run --name webserver -d -p 80:80 nginx
docker: Error response from daemon: Conflict. The container name "/webserver" is already in use by container "789a5e28f3d3199f2b59482f660c974fdb59455729dab113491786caeaf1c26f". You have to remove (or rename) that container to be able to reuse that name.
See 'docker run --help'.
webserverという名前でコンテナを作ってしまったので名前が重複している。
新しい名前のコンテナを作成
LAPTOP-XXXXXX MINGW64 /c/dockerlesson
$ docker container run --name webserver1 -d -p 80:80 nginx
8cfddf61720d3c84a7695e903ef0ed1fa1d1477e2b8af5bdbf1289244eedd53f
ちゃんと動いてるっぽい
$ docker container ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8cfddf61720d nginx "/docker-entrypoint.…" 34 seconds ago Up 31 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp webserver1
コンテナを停止
LAPTOP-XXXXXX MINGW64 /c/dockerlesson
$ docker stop webserver1
webserver1
コンテナを再起動
LAPTOP-XXXXXX MINGW64 /c/dockerlesson
$ docker start webserver1
webserver1
繋がっていることがわかる