[ Docker ] 도커란 무엇일까?
(해당 포스팅은 개인 공부를 목적으로 정리한 포스팅입니다.)
Docker 사용법
도커 허브 : 앱스토어 처럼 여러 이미지들을 받을 수 있는 저장소
이미지 : 도커 허브에서 찾아낸 것을 컴퓨터에 다운로드 해서 가지고 있는 것
컨테이너 : 이미지를 실행하는 것
프로그램이 여러개의 프로세스를 가질 수 있는 것처럼 이미지도 여려개의 컨테이너를 가질 수 있음
<Docker 명령어>
이미지 다운받는 명령어 - docker pull Image(name).
이미지 확인 명령어 - docker images
이미지 삭제 - docker rmi Image(name)
실행중인 컨테이너 확인 명령어 - docker ps
모든 컨테이너 확인 명령어 - docker ps -a
컨테이너 실행 명령어 - docker run Image(이미지 이름).
컨테이너 실행 (포트포워딩) - docker run —name (생성할 이름) -p 8000:80 Image(name)
: 도커호스트 8000번 포트와 컨테이너 80번 포트를 연결
컨테이너 중지 명령어 - docker stop Container(name)
컨네이너 재시작 명령어 - docker start
도커에서 로그 확인 - docker logs Container(name)
도커에서 실시간 로그 확인 - docker logs -f Container(name)
컨테이너 삭제 - docker rm Container(name)
=> 실행중인 컨테이너는 먼저 중지하고 삭제 해야함.
실행중인 컨테이너 바로 삭제 - docker rm —force Container(name)
컨테이너 명령어 전달 - docker exec Container(name) (실행하고자 하는 명령어)
컨테이너에 지속적으로 명령어 전달 - docker exec -it Container(name) /bin/sh
=> /bin/sh 입력시 ‘본쉘’, /bin/bash이라는 프로그램 실행, 쉘은 사용자의 명령어를 운영체제에 전달하는 창구 역할
컨테이너 범위 탈출 - exit
=>호스트를 대상으로 하는 명령어로 인식
<컨테이너 수정>
GUI
컨테이너 -> CLI -> pwd(컨테이너 안에서 명령어 입력한 것) - ls -al
terminal
docker exec Container(name) pwd
docker exec Container(name) ls
docker exec -it Container(name) /bin/sh
apt update
나노 에디터 설치 : apt install nano
파일 편집 : nano index.html
수정후
control + X (수정된 내용 저장)
Y + enter
호스트 - 컨테이너의 파일시스템 연결
=> 호스트에서 변경사항 있으면 컨테이너에 바로 적용되는 방법
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
생활코딩님의 유튜브 강의를 정리한 내용입니다!