목차
1. Doker 프로세스 동작 과정
2. Docker 설정
2.1 cat, >, <, <<
2.2 Docker cp
2.3 Signal
2.4 /etc/hosts
2.5 exec
2.6 attach
1. Doker 프로세스 동작 과정
2. Docker 설정
- nginx 이미지 다운 후 실행시켜 컨테이너를 생성한다.
- 웹 페이지에 띄울 화면의 내용을 작성한다.
- httpd 이미지를 이용하여 h1의 이름을 가진 컨테이너를 생성한다.
2.1 cat, >, <, <<
- h1 컨테이너의 경우 bash shell이 따로 없기 때문에 exec 명령어를 이용하여 실행중인 컨테이너에 명령어를 실행한다.
* cat 리디렉션
- > : 표준 출력을 우측으로 바꾸겠다.
- << : 은 표준 입력을 바꾸겠다. ( << END를 실행 명령어 끝에 작성하면 END를 만나게 되면 저장하고 종료하게 된다.)
* >, < 사용
- 텍스트 파일을 하나 생성하여 내용을 작성한다.
- cat 명령어와 함께 > 를 사용하여 표준 출력을 test.txt 파일로 바꾸고 해당 파일에 < 를 이용하여 표준 입력을 위에서 생성한 파일을 작성하여 내용을 집어 넣는다.
2.2 Docker cp
- dockr cp를 사용하면 local -> container / container -> local로 파일을 옮길 수 있다.
- 단 도커 컨테이너의 경로를 지정할 때는 절대 경로를 적어줘야 한다.
- 로컬에서 생성한 파일을 docker cp 명령어
- docker cp를 이용하여 로컬에 있는 파일을 h1 컨테이너로 옮길 수 있다.
- docker cp를 이용하여 h1 컨테이너에 있는 파일을 로컬로 옮길 수 있다.
- local에서 container로 다시 container에서 local로 새로운 이름의 파일을 생성하였을 때 cp를 이용하여 파일을 복사했기 때문에 내용이 동일한 것을 볼 수 있다.
- 실행된 컨테이너의 웹 페이지에 들어가보면 cp로 복사한 내용이 나오는 것을 볼 수 있다.
2.3 Signal
- Signal이란. 프로세스 간 통신의 한 형태를 뜻한다.
* kill : 작업중이던 것도 무조건 삭제한다.
* stop : 정상 종료, 작업하는 내용은 정상적으로 마무리한다.
* pause : 하던 작업도 멈춘다.
- 현재 2개의 컨테이너 실행중이기 때문에 네트워크 카드가 2개 생성되어 있는 것을 볼 수 있다.
- 네트워크 카드 11번에 해당하는 Container를 stop으로 정상 종료 시킨 다음 rm 명령어로 삭제하게 되면 컨테이너가 정상적으로 종료되었기 때문에 11번 네트워크 카드가 사라진 것을 볼 수 있다.
2.4 /etc/hosts
- /etc/hosts 파일은 호스트 이름에 대응하는 IP 주소가 저장되어 있어서 도메인 이름 시스템(DNS)에서 주소 정보를 제공 받지 않고도 서버의 위치를 찾게 해주는 파일이다.
- /etc/hosts 파일에 IP 주소와 해당 별칭을 저장하게 되면 DNS에 별도로 저장하지 않아도 별칭을 이용하여 상대방과 통신 할 수 있다.
2.5 exec
- exec 명령어는 외부에서 컨테이너에 진입할 때 사용한다.
- exec 명령어를 이용하여 외부에서 a1 컨테이너에 진입하여 ping 명령어를 실행 시킨다.
2.6 attach
- attach 명령어는 Container 실행시 사용한다.
- alpine 이미지를 통해 컨테이너 생성 후 /etc/hosts 파일과 inspect 명령어를 통해 컨테이너 ID가 동일한 것을 확인할 수 있다.
* /etc/hosts 파일에 호스트 추가하여 통신
- 컨테이너 a1과 a2에 attach로 실행시킨 다음 /etc/hosts 파일에 서로의 IP 주소와 별칭을 저장한다.
- 별칭을 이용하여 서로에게 통신을 시도하면 정상적으로 ping 통신이 되는 것을 볼 수 있다.
- id 값을 확인하고 ip 주소를 확인하고 /etc/hosts 파일에 넣으면 별칭이나 id값으로 상대방 ip 주소를 저장할 수 있고 DNS보다 먼저 인식한다.
'Programming > Docker' 카테고리의 다른 글
Docker - HAProxy, Network, Port Forwarding (0) | 2022.05.30 |
---|---|
Docker - Network (0) | 2022.05.30 |
Docker - Copy, Volume (0) | 2022.05.30 |
Docker - 프로세스, 쉘, 데몬, 포그라운드, 백그라운드 (kill 명령어) (0) | 2022.05.26 |
Docker - 설치 및 기본 명령어, 원격 저장소에 이미지 올리기 (0) | 2022.05.19 |