이 글은 생활코딩(egoing)의 Docker 입문수업을 참고하여 정리한 자료입니다. (하단 참고자료 표기)
단지 'docker run httpd' 로 웹서버(아파치) 컨테이너를 생성하면
외부 클라이언트가 해당 서버에 바로 접속할 수 있을까?
없다... 왜냐하면 호스트의 포트와 컨테이너의 포트가 연결되어 있지 않기 때문이다.
따라서 컨테이너 실행 시에 포트 연결 옵션을 주어야 한다. 이것을 포트 포워딩이라고 한다.
# host의 80번 포트와 container의 80번 포트를 연결
$ docker run -p 80:80 httpd
# host의 8000번 포트와 container의 80번 포트를 연결
$ docker run -p 8000:80 httpd
컨테이너에 명령어를 전달하여 실행시킬 수 있다.
# docker exec <컨테이너명> <명령어>
$ docker exec monad_apache pwd
컨테이너와 지속적으로 연결을 유지하면서 명령어를 전달할 수도 있다.
-it는 터미널과 컨테이너가 지속적으로 연결되도록 하는 옵션이다.
(STDIN 표준 입출력을 열고 가상 tty를 통해 접속)
# docker exec -it <컨테이너명> /bin/sh (본쉘)
# docker exec -it <컨테이너명> /bin/bash (bash쉘)
$ docker exec -it monad_apache /bin/bash
# 위 커맨드를 실행하고 나면 monad_apache의 bash쉘에 지속적으로 명령어를 전달하게 된다.
# exit 하면 연결이 종료됨
호스트의 로컬 파일시스템을 컨테이너 파일시스템에 연결할 수 있다.
로컬에서 변경된 내용이 컨테이너에도 반영되어 개발이 보다 쉬워지고, 소스코드 버전관리에도 용이해질 것이다.
실행환경은 컨테이너에 맡기고, 파일을 수정하는 것은 호스트에서 진행할 수 있게 되는 것이다.👏
-v : 볼륨 옵션!
# docker run -v <host파일경로>:<container파일경로> <이미지>
$ docker run -p 8888:80 -v ~/Desktop/htdocs:usr/local/apache2/htdocs/ httpd
※참고 자료※
https://www.youtube.com/watch?v=SJFO2w5Q2HI&list=PLuHgQVnccGMDeMJsGq2O-55Ymtx0IdKWf&index=5
안녕하세요 운영자님
인카토스입니다.
먼저, 댓글로 인사를 드리게 된 점 양해 부탁 드립니다.
이렇게 연락 드린 이유는 이번에 저희가 제작한 도커 각티슈케이스 제품 협찬을 제안드리고 싶어서 연락 드렸습니다.
개발자들에게 많은 사랑은 받은 각티슈케이스입니다.
저희 상품 블로그 포스팅이 가능하실지 여쭙고자 연락드렸습니다.
포스팅이 어려우시다면 도커 글 하단에 이미지와 링크만 좀 달아주셔도 좋을거같습니다.
연락드릴수 있는방법이 댓글밖에 보이지 않아 이렇게 먼저 연락드립니다.
협찬제안에 긍정적인 검토 부탁드리고 제안이 마음에 드신다면 하기 메일로 메일주시면 제품 보내드리도록 하겠습니다.
sungjh0726@naver.com
협찬제품 링크 : https://incatos.shop/surl/P/11
감사합니다.
인카토스 드림.