[Docker] 실행 중인 Container에 포트 추가하기
cloudera/quickstart
도커 이미지를 이용해서 로컬 테스트를 하던 중 drill
을 추가로 설치했는데 drill 웹 서비스 포트는 기존에 포트 맵핑을 해두지 않았기 때문에 새롭게 추가해야만 했다.
이미 컨테이너로 실행 중인 상태에서 동적으로 포트 포워딩 룰을 추가해줄 수 없고 실행중인 컨테이너를 종료하고 현재 상태를 이미지로 만든 뒤, 해당 이미지로 다시 실행해야한다고 한다.
# docker stop 456de181ebb3
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
456de181ebb3 cloudera/quickstart "/usr/bin/docker-qui…" 4 hours ago Exited (0) 11 seconds ago cloudera.cluster.01
# docker commit 456de181ebb3 quickstart-0905-01
sha256:1cea2d1292d26b3df9d4828536cee2654ce449e58813592e46119622bd2fb627
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
quickstart-0905-01 latest 1cea2d1292d2 4 seconds ago 8.5GB
cloudera/quickstart latest 4239cd2958c6 3 years ago 6.34GB
# docker run \
# --name cloudera.cluster.02 \
# --hostname=quickstart.cloudera \
# --privileged=true -t -i -d \
# -p 10000:10000 \
# -p 10002:10002 \
# -p 10020:10020 \
# -p 10033:10033 \
# -p 11000:11000 \
# -p 12000:12000 \
# -p 14000:14000 \
# -p 18088:18088 \
# -p 19888:19888 \
# -p 21000:21000 \
# -p 21050:21050 \
# -p 2181:2181 \
# -p 22000:22000 \
# -p 23000:23000 \
# -p 23020:23020 \
# -p 24000:24000 \
# -p 25000:25000 \
# -p 25010:25010 \
# -p 25020:25020 \
# -p 26000:26000 \
# -p 37835:37835 \
# -p 44273:44273 \
# -p 50010:50010 \
# -p 50020:50020 \
# -p 50070:50070 \
# -p 50075:50075 \
# -p 50090:50090 \
# -p 60000:60000 \
# -p 60010:60010 \
# -p 60020:60020 \
# -p 60030:60030 \
# -p 80:80 \
# -p 8020:8020 \
# -p 8022:8022 \
# -p 8030:8030 \
# -p 8031:8031 \
# -p 8032:8032 \
# -p 8033:8033 \
# -p 8040:8040 \
# -p 8042:8042 \
# -p 8047:8047 \
# -p 8070:8070 \
# -p 8085:8085 \
# -p 8088:8088 \
# -p 8480:8480 \
# -p 8485:8485 \
# -p 8888:8888 \
# -p 8983:8983 \
# -p 9083:9083 \
# -p 9090:9090 \
# -p 9095:9095 \
# quickstart-0905-01 /usr/bin/docker-quickstart
a36bafdaf3599223d38ae651e7fec68259cc0658a0f91f73e16bb830903fee83
포트 외에 볼륨 등 다른 실행 옵션도 같은 방법으로 활용할 수 있을 것 같다.