2021.08.22 - [DevOps/Docker] - [Docker] 도커 네트워크
이전 포스팅에서 도커 컨테이너 내의 웹 서버를 실행시켜보았다.
이번에는 도커의 명령어를 사용해서 index.html을 수정해보자.
https://hub.docker.com/_/httpd
위 링크에서 확인해보면 아래 경로에 사용자가 요청한 웹페이지를 보관하도록 약속되어있다.
FROM httpd:2.4
COPY ./public-html/ /usr/local/apache2/htdocs/
index.html에 접근하기 위해서 컨테이너에 접속하여 위의 경로로 이동하는 명령어와 수정하는 명령어 등을 사용해야 할텐데, 컨테이너에 명령어를 전달하기 위해서는 아래 명령어를 사용한다.
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
옵션들은 https://docs.docker.com/engine/reference/commandline/exec 에서 확인할 수 있다.
명령어를 숙지했다면, index.html 파일을 수정해보자.
1. 현재 가동중인 컨테이너 확인
docker ps
2. ws2 컨테이너에 접속
docker exec -it ws2 /bin/bash
3. htdocs로 이동하여 조회해보면 index.html파일이 있는 것을 확인할 수 있다.
cd htdocs
ls -al
4. index.html 를 수정하기 위해서는 nano에디터가 필요하다.
나노 에디터 설치
apt update
apt install nano
나노 에디터 실행
nano index.html
5. 위 파일을 Hello, Docker!로 수정하고 저장 후에 다시 접속해보면 정상적으로 수정된 것을 확인할 수 있다!
하지만, 위처럼 직접 수정한다면 불편하고 위험한 일들이 발생할 수 있다.
예를 들어, 컨테이너의 파일 시스템 안에 있는 index.html을 수정했는데, 컨테이너가 사라지게 된다면 작업한 내용이 물거품이 된다. 컨테이너는 필요할 때 생성, 삭제가 편하기 때문에 좋은 기술인데 컨테이너 생성과 삭제에 많은 비용이 들어간다면 그 장점이 사라질 것이다.
컨테이너 File System의 /usr/local/apache2/htdocs/ 와 Host File System의 /Desktop/htdocs/ 디렉토리를 연결하고 Host쪽에서 수정이 이뤄졌을 때 그것이 컨테이너 파일시스템에 반영될 수 있다면 컨테이너가 사라지더라도 소스코드는 여전히 호스트에 남아있기 때문에 보다 안전하게 개발을 지속 할 수 있을 것이다.
즉, 실행환경은 컨테이너에게 맡기고 파일을 수정하는 작업은 Host에서 진행하는 것이다.
아래와 같이 -v 옵션을 사용하여 위 이미지처럼 도커를 실행할 수 있다.
docker run -p 8888:80 -v C:\Users\skrdu\Desktop\htdocs\:/usr/local/apache2/htdocs/ httpd
나노 에디터 사용법
https://junistory.blogspot.com/2017/08/nano.html
아래 주소에서 다양한 명령어들을 확인해볼 수 있다.
https://docs.docker.com/reference
'DevOps > Docker' 카테고리의 다른 글
[Docker] 도커 네트워크 (0) | 2021.08.22 |
---|---|
[Docker] 도커 Image, Container (0) | 2021.08.19 |
[Docker] 도커 입문 (0) | 2021.08.19 |
댓글