Docker - 기본 명령어 (3)

FromCloud·2023년 6월 18일
0

Kubernetes & Docker

목록 보기
5/12

cp

copy명령어는 두가지 방식이 있는데 host -> container cotainer -> host 이렇게 두가지 방식이 있다
아쉽게도 container -> container방식은 cp에서 할 순 없지만 볼륨을 공유해서 하는 방법이 있다 host에서 파일을 수정하거나 만들면 컨테이너에도 그대로 적용이 된는 방식이다

docker cp <file_name> <container_NAMES>:<PATH> 기본적인 명령어 형식

cp의 또 다른 하나의 단점을 뽑자면 해당 컨테이너가 실행되어있어야 cp 명령어가 가능하다는 점이다!!

호스트에서 index.html 이라는 파일을 만들어 주었고 안에 html코드를 입력해 주었다
이후에 docker run -itd -p 60080:80 --name h1 httpd 명령어를 입력하여 실행을 시켜준다
해석: h1 이름으로 httpd를 실행 시킬껀데 외부 포트는 60080을 사용할 것이고 내부포트는 80으로 사용할것입니다

이전에는 내부에서만 확인 할수 있게 하기위해 -p(port) 옵션을 주지 않았지만 이번에는 외부에서 확인을 하기위해 따로 설정을 해주었다

외부에서 확인 할 수 있는 모습

여기서 원래 외부에서 접속을 하기 위해서 방화벽을 열어줘야 하지 않나요??

답변을 하면 docker의 외부포트는 firewall(방화벽)의 지배를 받지 않고 iptables에 의해서 자동으로 열리기 때문에 host에서는 방화벽을 열어줄 필요없이 외부에서 접속이 가능하다
아주 똑똑해~~~

docker cp index.html h1:/usr/local/apache2/htdocs/index.html

이렇게 host -> container 로 복사를 할 수 있다

웹사이트를 새로고침하면 내가 만들어 두었던 html 파일이 정상적으로 복사되어 확인이 가능한 모습이다

container -> host 과정을 거쳐야하는데 차이점을 확인 하기 위해서
h1에 접속해 안에서 index.html 파일을 수정한 후에 cp 명령어를 이용해서 host 에서 확인하는 작업을 해보겠다

docker exec -it h1 /bin/bash
cat > htdocs/index.html << END
><html>
><body>
><h1>From Cloud-Docker-Index1.html</h1>
></body>
></html>
>END
exit
docker cp h1:/usr/local/apache2/htdocs/index.html ./index1.html

이렇게 명령어를 입력하였다
변경한후 웹사이트에서도 잘 접속되고 확인이 되는 모습이다


host 에서도 정상적으로 확인이 되는 모습

rename

실행중인 컨테이너의 이름을 변경하는 명령어인데 실행중인 컨테이너도 가능하니 부담없이 쓰면 된다
docker rename <before_name> <after_name>

commit

cp 명령어 처럼 host에서 가지고 있던 html 파일이나 설정 값들을 만약 h1에 넣어 줫다면 조금 설정된 파일 이라면 그런 생각이 안들겠지만 만약 엄청나게 많은 파일과 설정을 해놓았다면??
새로 컨테이너를 생성하면 또 똑같은 작업을 해줘야 하는 일이 발생을 해버린다

그것을 방지 하기위해 commit 명령어를 쓰는데 실행한 컨테이너를 다시 images화 시키는 명령어 이다

주의 할점은
컨테이너 -> 이미지화 시킬때 다시 이미지화 만들기위해 레포지토리 이름과 태그이름을 정확히 지정해줘야 한다는 점이다

docker commit h1 을 하면 이름과 이미지가 <none> 으로 뜰것이다 매우 귀찮아진다
docker commit h1 kimwooseop/webserver:test1 이런식으로 지정을 해주는 것이 좋다

docker images로 확인 하였을때 정확히 들어온것을 볼 수 있다
그렇다면 파일이 똑같은것이 맞는지 확인을 해봐야겟다!!

docker run -itd -p 61080:80 --name test kimwooseop/webserver:test1


정상적으로 작동이 아주 잘되는 모습이다

profile
매일 발전하는 Cloud Engineer

0개의 댓글