목차
접기
이번 실습에서 다룰 내용은 크게 중요하지는 않지만 언젠가 필요할수도 있기때문에 별도 번외로 작성합니다 :)
도커 프로세스를 정의하는 파일에 직접 들어가서 내용을 수정하는 실습을 진행합니다.
자, 한번 해봅시다! 😎
도커 컨테이너를 실행합니다.
[root@docker /]# docker container run --name nginx -d -p 8080:80 nginx
d66376e534babcd49e947d2766c01dac442a1c0daaa3d3f7643434b05bc210ae
목록을 확인해봅시다.
root@docker /]# docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d66376e534ba nginx "/docker-entrypoint.…" 11 seconds ago Up 11 seconds 0.0.0.0:8080->80/tcp nginx
이제 도커 데몬을 잠시 중지합니다.
[root@docker /]# systemctl stop docker
/var/lib/docker/container 경로에 들어가면 아주 긴 문자가 있을텐데, 이 문자는 Conteiner ID와 앞쪽이 일치합니다 :)
여러개의 컨테이너가 있는 경우 컨테이너 ID를 확인하여 구분할 수 있습니다.
이 경로로 가면 컨테이너 실행에 필요한 파일들을 확인할 수 있습니다.
이중에서도 hostconfig.json 파일을 변경해보도록 하겠습니다.
[root@docker /]# cd /var/lib/docker/containers/d66376e534babcd49e947d2766c01dac442a1c0daaa3d3f7643434b05bc210ae/
[root@docker d66376e534babcd49e947d2766c01dac442a1c0daaa3d3f7643434b05bc210ae]# ls -al
합계 28
drwx------. 4 root root 237 9월 28 05:06 .
drwx------. 3 root root 78 9월 28 05:06 ..
drwx------. 2 root root 6 9월 28 05:06 checkpoints
-rw-------. 1 root root 2680 9월 28 05:06 config.v2.json
-rw-r-----. 1 root root 1072 9월 28 05:06 d66376e534babcd49e947d2766c01dac442a1c0daaa3d3f7643434b05bc210ae-json.log
-rw-r--r--. 1 root root 1512 9월 28 05:06 hostconfig.json
-rw-r--r--. 1 root root 13 9월 28 05:06 hostname
-rw-r--r--. 1 root root 174 9월 28 05:06 hosts
drwx------. 2 root root 6 9월 28 05:06 mounts
-rw-r--r--. 1 root root 102 9월 28 05:06 resolv.conf
-rw-r--r--. 1 root root 71 9월 28 05:06 resolv.conf.hash
hostconfig.json 파일 내용은 아래와 같습니다 :)
저는 이 내용중에 "HostPort":"8080" 값을 변경해줄게요. (vi에디터를 사용하여 변경해주세요)
[root@docker d66376e534babcd49e947d2766c01dac442a1c0daaa3d3f7643434b05bc210ae]# cat hostconfig.json
{"Binds":null,"ContainerIDFile":"","LogConfig":{"Type":"json-file","Config":{}},"NetworkMode":"default","PortBindings":{"80/tcp":[{"HostIp":"","HostPort":"8080"}]},"RestartPolicy":{"Name":"no","MaximumRetryCount":0},"AutoRemove":false,"VolumeDriver":"","VolumesFrom":null,"CapAdd":null,"CapDrop":null,"Capabilities":null,"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"]}
자 변경된 후의 값은 아래와 같습니다. "HostPort":"8090"으로 변경하였습니다.
[root@docker d66376e534babcd49e947d2766c01dac442a1c0daaa3d3f7643434b05bc210ae]# cat hostconfig.json | grep HostPort
{"Binds":null,"ContainerIDFile":"","LogConfig":{"Type":"json-file","Config":{}},"NetworkMode":"default","PortBindings":{"80/tcp":[{"HostIp":"","HostPort":"8090"}]},"RestartPolicy":{"Name":"no","MaximumRetryCount":0},"AutoRemove":false,"VolumeDriver":"","VolumesFrom":null,"CapAdd":null,"CapDrop":null,"Capabilities":null,"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"]}
이제 Docker 데몬을 실행하고 컨테이너 상태를 확인합니다.
역시나 Stop된 상태입니다.
[root@docker /]# systemctl start docker
[root@docker /]# docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d66376e534ba nginx "/docker-entrypoint.…" 3 minutes ago Exited (0) 2 minutes ago nginx
컨테이너를 실행하고 상태를 확인합니다.
이제 정상적으로 UP상태가 되었네요 "0.0.0.0:8090->80/tcp"으로 변경된것 확인이 가능합니다 :)
[root@docker /]# docker start nginx
nginx
[root@docker /]# docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d66376e534ba nginx "/docker-entrypoint.…" 3 minutes ago Up 1 second 0.0.0.0:8090->80/tcp nginx
728x90