exec 명령어는 실행중인 컨테이너에서 명령을 실행할 수 있게 한다. 그냥 docker exec ws3 /bin/sh
만 입력하면 아무 일도 벌어지지 않는다. 옵션을 추가하면,
-i
옵션은 터미널과 컨테이너가 지속적으로 연결시켜주며, -t
옵션은 터미널 환경을 조성시켜 준다. 보통 셸에서 명령어를 사용하기 위해 두 옵션을 같이 쓴다.
sh
는 Bourne 셸이라는 프로그램으로, 기능이 부족하여 요즘에는 bash
셸을 많이 사용한다.
Docker hub는 image의 사용 설명도 같이 되어있다. dockerfile을 생성하기 위해 위 사진의 경로로 들어가보자. 컨테이너 안에서 웹 페이지를 찾는 경로이다.
파일 편집을 위해 apt 업테이트 후, nano 에디터를 설치했다.
nano index.html
명령어 입력 후, 파일 내용을 바꿔보면,
host 디렉토리와 container의 디렉토리를 연결해서 host에서 간접적으로 수정을 하면, 컨테이너에 문제가 생겼을 경우를 대비할 수 있다.
docker run -p 8888:80 -v ~/바탕화면/htdocs:/usr/local/apache2/htdocs/
-v
옵션을 추가하면 공유 디렉토리를 연결할 수 있다. 바탕화면에 htdocs 라는 폴더를 만들어서, index.html
이라는 파일을 만들었다. 이 파일을 8888포트에 연결시켜보자.
위와 같은 방식은 host에서 파일이 수정되고 노출되기 때문에, host 환경 안에서 버전관리나 백업, 편집 등의 작업을 할 수 있다는 장점이 있다.
감사합니다