🌱 Infra/Container_Docker

[Docker-Basic (번외)] Docker Container Configure File

mini_world 2020. 9. 28. 14:14
목차 접기


 

이번 실습에서 다룰 내용은 크게 중요하지는 않지만 언젠가 필요할수도 있기때문에 별도 번외로 작성합니다 :)

도커 프로세스를 정의하는 파일에 직접 들어가서 내용을 수정하는 실습을 진행합니다.

 

자, 한번 해봅시다! 😎

도커 컨테이너를 실행합니다.

[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