目的
Dockerfile で Ubuntu16:04 イメージをベースにコンテナを作成する際の基本手順の備忘録です。
前提
Dockerをインストール済である事が前提
Dockerfileの作成とコンテナの起動
docker imageが何も起動していない状態から開始
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Dockerfileを用意
#利用するUbuntuのイメージ
FROM ubuntu:16.04
RUN apt-get update
Dockerfileを格納しているディレクトリで、docker buildしてイメージを作成
(例)"ubuntu1604-test"の名前のイメージをbuild
$ docker build -t ubuntu1604-test .
Sending build context to Docker daemon 6.144kB
Step 1/2 : FROM ubuntu:16.04
16.04: Pulling from library/ubuntu
...
Successfully built 059ae10b126a
Successfully tagged ubuntu1604-test:latest
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu1604-test latest 059ae10b126a About a minute ago 151MB
ubuntu 16.04 005d2078bdfa 3 weeks ago 125MB
作成したイメージをベースにコンテナを起動
(例)ubuntu1604-testという名前でコンテナを起動する
$ docker run -it -d --name ubuntu1604-test ubuntu1604-test:latest
d9d1cb8606bc0a2ddb798bc19ab6de746eced6b19f933de335be986d8c955296
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d9d1cb8606bc ubuntu1604-test:latest "/bin/bash" 13 seconds ago Up 12 seconds ubuntu1604-test
起動が成功すればOK
コンテナ内に入って色々試してみる
$ docker exec -it ubuntu1604-test /bin/bash
root@d9d1cb8606bc:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@d9d1cb8606bc:/# exit # コンテナから出る
不要になればコンテナを削除
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d9d1cb8606bc ubuntu1604-test:latest "/bin/bash" 2 minutes ago Up 2 minutes ubuntu1604-test
$ docker stop d9d1cb8606bc
d9d1cb8606bc
$ docker rm d9d1cb8606bc
d9d1cb8606bc
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
不要になればイメージも削除
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu1604-test latest 059ae10b126a 5 minutes ago 151MB
ubuntu 16.04 005d2078bdfa 3 weeks ago 125MB
$ docker rmi ubuntu1604-test
Untagged: ubuntu1604-test:latest
Deleted: sha256:059ae10b126a33c0a1383be2de2e164ba34459bc2671e05f1d3368511a59070c
Deleted: sha256:f5de470b93ff6d77d6ec1d3b43e963aee80fefee1226520cafa65b8762b81307
$ docker rmi ubuntu:16.04
Untagged: ubuntu:16.04
Untagged: ubuntu@sha256:db6697a61d5679b7ca69dbde3dad6be0d17064d5b6b0e9f7be8d456ebb337209
Deleted: sha256:005d2078bdfab5066ae941cea93f644f5fd25521849c870f4e1496f4526d1d5b
Deleted: sha256:a83c92a7c7a0f4a52fc74fa38496be9a5e6b738bc5fd5d60e54768fed238c173
Deleted: sha256:c6a36d55655e576fc8166a32fd05e281d03bedc26b1118902e92e7ba421dfa72
Deleted: sha256:d1c997f15060e07ff557383387d6839e0377873837025fc843fa5d94bea2c4e5
Deleted: sha256:b592b5433bbffb04389a0e6349cdba6af8d006779bbb93beb69aa77d59133be4
(base) seigonoMacBook-puro-1320:appjs seigo$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker run の代わりに docker-compose.ymlを使う場合
以下のようにdocker-compose.ymlを用意する
version: '3.3'
services:
test:
container_name: ubuntu1604-test
image: 'ubuntu1604-test:latest'
stdin_open: true
docker run の代わりにdocker-compose でコンテナ起動する
$ docker-compose up -d
Creating ubuntu1604-test ... done
(base) seigonoMacBook-puro-1320:appjs seigo$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d2276b9cd3f0 ubuntu1604-test:latest "/bin/bash" 2 seconds ago Up 1 second ubuntu1604-test
docker build の代わりに docker-compose.ymlを使う場合
以下のようにdocker-compose.ymlを用意する
version: '3.3'
services:
test:
build:
context: .
dockerfile: Dockerfile
container_name: ubuntu1604-test
image: 'ubuntu1604-test:latest'
stdin_open: true
docker build/run の代わりにdocker-compose でコンテナ起動する
$ docker-compose build
$ docker-compose up -d
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7af849677b8c ubuntu1604-test:latest "/bin/bash" 3 seconds ago Up 2 seconds ubuntu1604-test
その他
作成したコンテナを利用して、以下を参考にROSインストールを行い、turtlesimが動かせる事を確認済(2020/5/15)→別記事にする予定
ROS Kinetic の Ubuntu へのインストール
ROSトピックの理解
Docker for MacでROSの亀さんと戯れた
参考
Dockerfile リファレンス
超基礎からの 速習 Docker (1)
Docker for MacでROSの亀さんと戯れた
Docker run/createコマンド
DockerでUbuntu 16.04 LTSのイメージを利用してみよう
Dockerによる開発環境構築(Rails & Postgres)において exited with code 0 でコンテナが終了してしまった時の対処法
ROS Kinetic の Ubuntu へのインストール
ROSトピックの理解
ROS Kinetic の Ubuntu へのインストール
ROSトピックの理解
Docker for MacでROSの亀さんと戯れた