일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- styling
- github
- GitLab
- Xcode
- vscode
- styled-components
- xtring.log
- currying
- npm install
- commit
- Swift
- git
- Branch
- nextJS
- shortcut
- rn
- DevOps
- js
- Android
- React Native
- ios
- Docker
- viewcontroller
- REACT
- ES6
- ReactNative
- react-native
- JavaScript
- npm
- HTML
Archives
- Today
- Total
xtring.dev
Docker 입문 - 명령어 실행(feat. 생활코딩) 본문
생활코딩 docker 입문수업 - 명령어 실행
앞 시간에서 우리는 우리가 만든 웹서버 컨테이너에 접근하고 해당 페이지를 확인할 수 있었습니다. 이번 시간에는 해당 컨테이너에 들어가서 컨테이너를 수정해보겠습니다.
컨테이너 접속해서 수정하기
데스크톱 앱에서 컨테이너로 접속하기
테스크톱 앱에서는 CLI를 통해 접근합니다.
해당 버튼을 클릭하면 터미널이 실행되고 여기서 리눅스 명령어를 통해서 해당 컨테이너의 OS에서 명령어를 실행시킬 수 있습니다.
터미널로 컨테이너에 접속하기
터미널을 통해 접속하는 방법은 docker exec를 실행하는 방법입니다. (exec는 execute의 약자)
$ docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
CONTAINER는 컨테이너의 이름, 그 뒤에 COMMAND에는 실행시키고 싶은 명령어를 지정합니다. ARG는 명령어의 파라미터입니다. 이제 ws3 컨테이너에 접근하여 컨트롤 해봅시다. 위에서 알아본 `exec` 명령어를 아래와 같이 사용할 수 있습니다.
그런데 이 방법은 하나의 명령어만을 전달합니다. 먼저, /bin/sh에 접근합니다.
sh는 shell을 의미하며 shell의 역할은 사용자가 입력한 명령을 쉘 프로그램이 받아서 그것을 운영체제에게 전달해주는 일종의 창구와 같은 역할을 합니다. 그리고 연결을 유지하기 위해서 -it 옵션을 사용합니다.
$ docker exec -it ws3 /bin/sh
이렇게 ws3 컨테이너에 접근하고 이 컨테이너를 대상으로 해서 명령어를 실행시키는 것이 가능합니다. -it 옵션은 i는 interactive, t는 tty를 의미합니다. 해당 기능에 대해서 자세히 알기 위해서는 운영체제에 대한 공부가 필요한데 여기서는 뛰어넘겠습니다. 그리고 해당 연결을 끝내고 컨테이너 밖으로 나가고 싶다면 exit 명령어를 사용합니다.
웹서버의 index.html 수정하기
docker hub의 httpd 문서를 살펴보면 index.html의 파일 위치를 알려줍니다.
https://hub.docker.com/_/httpd
/usr/local/apache2/htdocs/해당 경로에 index.html 파일이 있다는 것을 알아볼 수 있습니다.
이 경로를 통해서 우리는 이 파일에 접근이 가능합니다. (이때는 bash shell로 접근했습니다.)
apt나 yum 같은 것을 통해 컨테이너에 기능을 추가합니다. 여기서는 apt를 사용합니다. apt를 업데이트해서 nano 에디터를 사용할 수 있도록 설치 합니다.
$ apt update
# and
$ apt install nano
이제 nano를 통해서 index.html 파일에 접근하여 수정할 수 있습니다.
해당 파일을 수정하고 ctrl + x, y, enter 하면 해당 파일을 저장하고 빠져나오게 됩니다.
ws3의 주소인 http://localhost:8081/index.html에 접근하여 reload하게 되면 우리가 수정한 페이지를 확인할 수 있습니다.
이렇게 해서 우리가 생성한 웹서버 컨테이너의 파일을 변경할 수 있게 되었습니다.
다음 아티클 바로가기
반응형
'Infra. > Docker' 카테고리의 다른 글
Docker 입문 - 호스트와 컨테이너의 파일시스템 연결 (0) | 2022.01.02 |
---|---|
Docker 입문 - 네트워크(feat. 생활코딩) (0) | 2022.01.02 |
Docker 입문 - container run(feat. 생활코딩) (0) | 2022.01.02 |
Docker 입문 - image pull(feat. 생활코딩) (0) | 2022.01.02 |
Docker 입문 - 설치(feat. 생활코딩) (0) | 2022.01.02 |
Comments