코딩/도커

[도커] 도커 공부

카슈밀 2025. 5. 12. 17:47
반응형

도커 허브에서 도커이미지를 호출하고, 도커 이미지를 실행하는 것을 컨테이너라고 함.

 

 

docker hub에서 image를 다운로드 하는 게 pull, 실행하는 명령하는 것을 run이라고 함.

 

도커 이미지들이 있는 곳이(npm역할)

https://hub.docker.com

 

도커 레퍼런스가 있는 곳이

https://docs.docker.com

 

 

pull 하는 방법.
docker pull [다운로드할 라이브러리이름]

 

다운로드 된 것 확인

docker images

 

CLI의 경우 위의 방법으로 확인하고, GUI(도커 데스크탑)으로 확인시 Images 탭에 존재함.

 

실행명령어

docker run [도커 이미지]

 

생성되고 실행중인 컨테이너 조회

docker ps

 

도커 중지

docker stop [id || 컨테이너 이름]

 

중지된 도커목록 조회

docker ps -a

 

중지된 도커 재실행

docker run [컨테이너 이름]

 

재실행된 도커 로그 봐야할 경우 (일부만 출력하고 꺼짐)

docker logs [컨테이너 이름]

 

재실행된 도커 로그(실시간 봐야할 경우)

docker logs -f [컨테이너 이름]

 

도커 컨테이너 삭제

docker rm [컨테이너 이름]

 

도커 컨테이너 강제 삭제

docker rm --force [컨테이너 이름]

 

도커 이미지 삭제

docker rmi [도커 이미지 이름]

 

도커 컨테이너를 전체로 docker host로 칭함.

 

그렇다면 외부에서 도커를 연결할때 어떻게 연결할까?
docker run -p 80:80 [해당 이미지]

 

80[호스트 포트]:80[컨테이너 포트]

이를 포트포워딩으로 칭함.

 

그렇다면, 시작할때 도커 컨테이너 이름과 포트를 정해야할 경우?

docker run --name [이름] -p [호스트 포트]:[컨테이너포트] [도커 이미지]

 

도커 컨테이너 접근해서 실행할 경우 어떻게 해야할까?
도커 데스크탑에서 직접 접근.
view termianl


cli로 접근(1회성 명령어)

docker exec [컨테이너 이름] [리눅스 명령어]

 

접속 유지한채 사용하는 명령어

docker exec -it [컨테이너 이름] /bin/[sh || bash]

해당 명령어 사용인 경우 컨테이너 내부에 접속한 상태로 들어간다.
이제 리눅스 명령어 적용하면 됨.

도커 컨테이너 나갈때 명령어
exit

 

 

도커 컨테이너 내부와 호스트 내 데이터 연동. why? 도커 컨테이너 실수로 삭제시 원본 데이터는 유지하기 위함.
docker run -p [host por]:[container port] -v [container dirpath]:[cotainer image dirpath] [도커 이미지 이름]
ex) docker run -p 8888:80 -v ~/Desktop/htdocs:/usr/local/apache2/htdocs/ httpd


https://www.youtube.com/watch?v=Ps8HDIAyPD0&list=PLuHgQVnccGMDeMJsGq2O-55Ymtx0IdKWf&index=1

 

 

728x90