1 분 소요

Docker을 이용해서 Hello World 작업을 해보자.

파일 생성

snoopy_kr@iMac ~ % cat message
Hello World...!!!

snoopy_kr@iMac ~ % cat Dockerfile
FROM alpine:latest
RUN apk update && apk add figlet
ADD ./message /message
CMD cat /message | figlet

build

snoopy_kr@iMac ~ % docker build --tag hello:1.0 .

확인

snoopy_kr@iMac ~ % docker images
REPOSITORY                           TAG                                                     IMAGE ID       CREATED          SIZE
hello                                1.0                                                     0e664f242f0d   29 seconds ago   8.55MB

실행

snoopy_kr@iMac ~ % docker run hello:1.0
 _   _      _ _        __        __         _     _       _ _ _ 
| | | | ___| | | ___   \ \      / /__  _ __| | __| |     | | | |
| |_| |/ _ \ | |/ _ \   \ \ /\ / / _ \| '__| |/ _` |     | | | |
|  _  |  __/ | | (_) |   \ V  V / (_) | |  | | (_| |_ _ _|_|_|_|
|_| |_|\___|_|_|\___/     \_/\_/ \___/|_|  |_|\__,_(_|_|_|_|_|_)

[ref] image layer 정보

snoopy_kr@iMac ~ % docker inspect f2f58050ed69
[
    {
        "Id": "sha256:f2f58050ed69eac4d2aee85fc952086f4a6610facf22179131315c75d690923b",
        "RepoTags": [
            "hello:1.0"
        ],
        "RepoDigests": [],
        "Parent": "",
        "Comment": "buildkit.dockerfile.v0",
        "Created": "2023-07-17T15:10:21.136519804Z",
        "Container": "",
        "ContainerConfig": {
            "Hostname": "",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": null,
            "Cmd": null,
            "Image": "",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": null
        },
        "DockerVersion": "",
        "Author": "",
        "Config": {
            "Hostname": "",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "/bin/sh",
                "-c",
                "cat /message | figlet"
            ],
            "ArgsEscaped": true,
            "Image": "",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": null
        },
        "Architecture": "amd64",
        "Os": "linux",
        "Size": 9882663,
        "VirtualSize": 9882663,
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/v3u382w8hud9jbm3f6gf9j6ad/diff:/var/lib/docker/overlay2/0b25a55534d49835f6adea025e6e8a21b493499040fec16b922f834482f00bc3/diff",
                "MergedDir": "/var/lib/docker/overlay2/ikdnvkvx5j8fxe817r9j3x2lc/merged",
                "UpperDir": "/var/lib/docker/overlay2/ikdnvkvx5j8fxe817r9j3x2lc/diff",
                "WorkDir": "/var/lib/docker/overlay2/ikdnvkvx5j8fxe817r9j3x2lc/work"
            },
            "Name": "overlay2"
        },
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:78a822fe2a2d2c84f3de4a403188c45f623017d6a4521d23047c9fbb0801794c",
                "sha256:716ded151116ee171e8e9814056d5845e4b61537c541ff52e0a19e4a53e677fe",
                "sha256:2c48e7f83623eba43ce3998e15a949dbdf20a83a4d18343465be75defb93d12b"
            ]
        },
        "Metadata": {
            "LastTagTime": "2023-07-17T15:10:21.176766133Z"
        }
    }
]

[ref] run 형식

$ docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]

댓글남기기