지난 글에서는 httpd 이미지를 포트 매핑하여 브라우저에 index.html 파일을 띄우기까지 해보았다.
index.html 파일을 편집해서 웹 서버를 이용하는 나의 웹앱을 만들 수 있어야합니다.
그러기 위해서는 컨테이너 안에 들어가서 컨테이너를 수정할 수 있어야합니다.
이번 글에서는 생성한 컨테이너 안에 있는 파일을 수정하는 방법을 알아봅니다.
- 목차
- 방법1. Docker desktop 사용
- 방법2. CLI 사용 (집중)
- 컨테이너 내부로 접속
- index.html 파일 수정하기

pwd 명령어 입력: 여기에 입력한 명령어는 호스트에서 명령어가 아니라 컨테이너 내부에서 실행한 명령어입니다.
ls -al 명령어: 2번과 마찬가지로 컨테이너 안에 있는 파일을 보여줍니다.
명령어 모음
docker exec ws3 pwd명령어: 실행한 컨테이너 대상으로 명령어docker exec ws3 ls명령어: 1과 마찬가지로 컨테이너 대상으로 실행된 명령어docker exec ws3 /bin/sh명령어: shell 은 사용자가 입력한 명령어를 프로그램이 받아서 운영체제한테 전달해주는 창구 역할을 한다. 근데 위와 같이 명령을 하면 실행하자마자 연결이 끊어진다.docker exec -it w3 /bin/sh명령어:-it옵션을 줘서 연결을 유지 가능합니다.exit명령어: 컨테이너 밖으로 나갑니다. 이후 내리는 명령은 호스트를 대상으로 실행됩니다.docker exec w3 -it /bin/bash: 요즘은 sh 쉘 말고 bash 쉘을 많이 사용합니다.
docker exec[OPTIONS] CONTAINER COMMAND [ARG...] 명령어docker exec ws3 pwd 명령어: 실행한 컨테이너 대상으로 명령어
docker exec ws3 ls 명령어: 1과 마찬가지로 컨테이너 대상으로 실행된 명령어
컨테이너와 지속적으로 연결을 유지하면서 계속 명령을 전달하고 싶을 때는 좀 다른 방법을 사용해야합니다.
docker exec ws3 /bin/sh 명령어: shell 은 사용자가 입력한 명령어를 프로그램이 받아서 운영체제한테 전달해주는 창구 역할을 한다. 근데 위와 같이 명령을 하면 실행하자마자 연결이 끊어진다.
docker exec -it w3 /bin/sh 명령어: -it 옵션을 줘서 연결을 유지 가능합니다. 그러면 그 후 내리는 pwd, ls -al 명령어는 컨테이너 대상으로 내려진 명령어입니다. (계속 docker exec w3~~ 하고 명령어 내릴 필요가 없습니다.)-i, --interactive, -t, --tty 옵션: 운영체제에 대한 이해가 필요하기 때문에 터미널과 그 컨테이너가 지속적으로 연걸할 때는 -it 옵션을 쓴다라고 알고 사용하면 됩니다.
exit 명령어: 컨테이너 밖으로 나갑니다. 이후 내리는 명령은 호스트를 대상으로 실행됩니다.
docker exec w3 -it /bin/bash: 요즘은 sh 쉘 말고 bash 쉘을 많이 사용합니다.명령어 모음
docker exec -it ws3 /bin/bash
cd /usr/local/apache2/htdocs
ls -alapt update: apt updateapt install nano: nano 설치 - y/n 물어보면 y 입력nano index.html: 파일로 접근하여 텍스트를 Hello, Docker! 로 수정
/usr/local/apache2/htdocs/
docker exec -it ws3 /bin/bashcd /usr/local/apache2/htdocsls -al
vim 이나 nano 같은걸 포함을 잘 안 시킨다. 따라서 apt(ubuntu 등)나 yum(CentOS 등) 사용하여 설치하면 된다.apt update : apt updateapt install nano: nano 설치 - y/n 물어보면 y 입력nano index.html: 파일로 접근하여 텍스트를 Hello, Docker! 로 수정

이제 생성한 컨테이너 안에 있는 파일을 수정할 수 있습니다!