코드코코

[Docker] [실습] 컨테이너 관리 본문

기록/Docker

[Docker] [실습] 컨테이너 관리

코드코코 2022. 6. 7. 22:46

$ docker search nginx

[guru@docker-centos ~]$ docker search nginx
NAME                                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
nginx                                             Official build of Nginx.                        16919     [OK]       
linuxserver/nginx                                 An Nginx container, brought to you by LinuxS…   168                  
bitnami/nginx                                     Bitnami nginx Docker Image                      131                  [OK]
ubuntu/nginx                                      Nginx, a high-performance reverse proxy & we…   50                   
bitnami/nginx-ingress-controller                  Bitnami Docker Image for NGINX Ingress Contr…   18                   [OK]
rancher/nginx-ingress-controller                                                                  10                   
clearlinux/nginx                                  Nginx reverse proxy server with the benefits…   4                    
ibmcom/nginx-ingress-controller                   Docker Image for IBM Cloud Private-CE (Commu…   4                    
bitnami/nginx-ldap-auth-daemon                                                                    3                    
vmware/nginx                                                                                      2                    
circleci/nginx                                    This image is for internal use                  2                    
bitnami/nginx-exporter                                                                            2                    
rancher/nginx-ingress-controller-defaultbackend                                                   2                    
bitnami/nginx-intel                                                                               1                    
vmware/nginx-photon                                                                               1                    
rancher/nginx                                                                                     1                    
kasmweb/nginx                                     An Nginx image based off nginx:alpine and in…   1                    
rapidfort/nginx                                   RapidFort optimized, hardened image for NGINX   1                    
wallarm/nginx-ingress-controller                  Kubernetes Ingress Controller with Wallarm e…   1                    
continuumio/nginx-ingress-ws                                                                      0                    
rancher/nginx-ssl                                                                                 0                    
rancher/nginx-ingress-controller-amd64                                                            0                    
rancher/nginx-conf                                                                                0                    
ibmcom/nginx-ingress-controller-ppc64le           Docker Image for IBM Cloud Private-CE (Commu…   0                    
ibmcom/nginx-ppc64le                              Docker image for nginx-ppc64le                  0

 

$ docker images --no-truc

- 이미지 명을 풀넴임으로 출력

 

$ docker create --name webserver nginx:1.14

- latest 아닌 경우, 버전 생략 안됨

- create 는 기본이 백그라운드 실행

- 컨테이너 실행 X, 컨테이너 생성 O

 

$ docker ps -a

 

$ docker start webserver

- 컨테이너 실행

- 동작중 상태로 변경됨

 

$ docker inspect webserver

- 컨테이너 상세 정보

[guru@docker-centos ~]$ docker inspect webserver
[
    {
        "Id": "d42deb9e7a298eaebc826901ddc575b7123335700fb4199b6da66aa3d255691c",
        "Created": "2022-06-07T12:05:54.509323108Z",
        "Path": "nginx",
        "Args": [
            "-g",
            "daemon off;"
        ],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 2591,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2022-06-07T12:09:25.104125485Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
        "Image": "sha256:295c7be079025306c4f1d65997fcf7adb411c88f139ad1d34b537164aa060369",
        "ResolvConfPath": "/var/lib/docker/containers/d42deb9e7a298eaebc826901ddc575b7123335700fb4199b6da66aa3d255691c/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/d42deb9e7a298eaebc826901ddc575b7123335700fb4199b6da66aa3d255691c/hostname",
        "HostsPath": "/var/lib/docker/containers/d42deb9e7a298eaebc826901ddc575b7123335700fb4199b6da66aa3d255691c/hosts",
        "LogPath": "/var/lib/docker/containers/d42deb9e7a298eaebc826901ddc575b7123335700fb4199b6da66aa3d255691c/d42deb9e7a298eaebc826901ddc575b7123335700fb4199b6da66aa3d255691c-json.log",
        "Name": "/webserver",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": null,
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "default",
            "PortBindings": {},
            "RestartPolicy": {
                "Name": "no",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "CapAdd": null,
            "CapDrop": null,
            "CgroupnsMode": "host",
            "Dns": [],
            "DnsOptions": [],
            "DnsSearch": [],
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "private",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "ConsoleSize": [
                0,
                0
            ],
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": [],
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": [],
            "DeviceCgroupRules": null,
            "DeviceRequests": null,
            "KernelMemory": 0,
            "KernelMemoryTCP": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": false,
            "PidsLimit": null,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0,
            "MaskedPaths": [
                "/proc/asound",
                "/proc/acpi",
                "/proc/kcore",
                "/proc/keys",
                "/proc/latency_stats",
                "/proc/timer_list",
                "/proc/timer_stats",
                "/proc/sched_debug",
                "/proc/scsi",
                "/sys/firmware"
            ],
            "ReadonlyPaths": [
                "/proc/bus",
                "/proc/fs",
                "/proc/irq",
                "/proc/sys",
                "/proc/sysrq-trigger"
            ]
        },
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/067c07ec77de44732b5f41720f0902cb0653c529ca4f90bd41b069913a5a9372-init/diff:/var/lib/docker/overlay2/3e386f761e436e39c73092f6a4a0032cf665a7b0a670b458a00ce5864f24e83e/diff:/var/lib/docker/overlay2/c9f94232bafcd9e609a7eaa27412038408a353e6bee16d031f68b0f87e6fb94c/diff:/var/lib/docker/overlay2/e5f2ff76f48462cde86a174d2eb5014ef387b44065f0bf2617c86f0e830c372a/diff",
                "MergedDir": "/var/lib/docker/overlay2/067c07ec77de44732b5f41720f0902cb0653c529ca4f90bd41b069913a5a9372/merged",
                "UpperDir": "/var/lib/docker/overlay2/067c07ec77de44732b5f41720f0902cb0653c529ca4f90bd41b069913a5a9372/diff",
                "WorkDir": "/var/lib/docker/overlay2/067c07ec77de44732b5f41720f0902cb0653c529ca4f90bd41b069913a5a9372/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [],
        "Config": {
            "Hostname": "d42deb9e7a29",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": true,
            "AttachStderr": true,
            "ExposedPorts": {
                "80/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "NGINX_VERSION=1.14.2-1~stretch",
                "NJS_VERSION=1.14.2.0.2.6-1~stretch"
            ],
            "Cmd": [
                "nginx",
                "-g",
                "daemon off;"
            ],
            "Image": "nginx:1.14",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {
                "maintainer": "NGINX Docker Maintainers <docker-maint@nginx.com>"
            },
            "StopSignal": "SIGTERM"
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "d03451d818b4748f47912293e349cf915d25920c160e5eade5639099370a03b6",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {
                "80/tcp": null
            },
            "SandboxKey": "/var/run/docker/netns/d03451d818b4",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "6279832343fa38fb1dad900bfffa9b278fb0a3c611b6cdd3918bbceaff1474e0",
            "Gateway": "172.17.0.1",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "172.17.0.3",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "MacAddress": "02:42:ac:11:00:03",
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "c1e85434182f26f4a10cca0aae036846550c89ca8af7c29a667205d4ad9271ce",
                    "EndpointID": "6279832343fa38fb1dad900bfffa9b278fb0a3c611b6cdd3918bbceaff1474e0",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.3",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:03",
                    "DriverOpts": null
                }
            }
        }
    }
]

 

$ docker inspect --format '{{.NetworkSettings.IPAddress}}' webserver

- 해당 특정 값만 확인 하고 싶을 경우

- 대소문자 구분함

$ alias cip="docker inspect --format '{{.NetworkSettings.IPAddress}}' webserver"
- alias [단축어 명] ="[명령어]"

- 단축키 등록 

 

$ alias

- 등록된 command 확인

$ cip webserver

- 등록한 command 사용

 

$ curl 172.17.0.3

$ docker logs webserver

- 로그정보확인

$ docker logs -f webserver

- [-f] : 클라이언트가 생성하는 로그를 실시간으로 모니터링

 

$ docker top webserver

- 해당 컨테이너에서 실행 중인 프로세스 목록 출력

$ docker exec -it webserver /bin/bash

- 현재 동작 중인 컨테이너에 직접 접속하여 배시 쉘 사용

- [-i] : interactive

- [-t] : terminal

- nginx 컨테이너의 index.html 수정 및 확인

 

$ docker stop webserver

- 실행중인 컨테이너 중지

 

$ docker rm websever

- running 중 인 컨테이너는 삭제 불가

- stop 후 삭제

- [-f] : running 중 인 컨테이너를 stop 시키고 삭제함

 

학습영상 : https://www.youtube.com/watch?v=wrx-ixvtzxk&list=PLApuRlvrZKogb78kKq1wRvrjg1VMwYrvi&index=16