CICD/docker
[Docker] Container 개념
[dev] hiro
2024. 6. 17. 10:54
해당 포스팅은 이성미 강사님의 따라 배우는 도커(따배도, https://www.youtube.com/@ttabae-learn)를 보고 공부한 내용을 정리한 블로그입니다.
아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁
오늘은 고통스럽다.
내일은 더 고통스럽다.
그리고 내일 모래는 아름다울 것이다.
Mǎ Yún(알리바바 그룹 창업자 겸 회장)
Continaer Vs Container image
- 컨테이너는 하나의 Application 프로세스
- 컨테이너는 완벽히 독립적인 공간에서 실행(Cpu, memory, network, disk 등등이 별도..)
- docker Host ⇒ docker를 설치해서 daemon을 실행하는 것.(docker를 실행할 수 있는 platform 세팅)
- build할 때 이 구조를 따라야 함.
- Docker Host에 docker daemon 실행.
- 하드 디스크에 file 형태로 container image들이 존재.
- 메모리에 application이 running 중 ⇒ running 중인 프로세스(이미지) container
컨테이너 동작
- 도커 허브에 여러 image들 저장.
- docker search nginx를 하면 docker hub에 nginx 이미지를 가져옴
- docker pull nginx:latest하면 nginx의 이미지를 docker hub에서 가져와 disk에 저장.
- docker run -d —name web -p 80:80 nginx:latest으로 실행
용어정리
- Docker Host(Linux Kernel): 도커를 실행한 client
- Docker Daemon: docker가 실행되어 있는 환경
- Docker Client Command:
- Docker Hub: docker image 집합소
- Container Images: disk로 가져온 image
- Container: image를 실행한 Process
Docker Hub에서 컨테이너 이미지 검색
- docker version
- 현재 docker daemon 버전 확인
- systemctl status docker
- docker 상태 확인.
- docker search <image>
- docker hub에 해당 Image가 있는지 확인.
- docker images
- 내 컴퓨터 내 docker image 확인
- docker pull <Image>
- docker hub에 Image download
- 다음과 같이 7개의 layer로 구성
- docker run --name web -d -p 80:80 nginx
- 독립적인 container id를 통해서 container 실행
- docker ps
- 현재 실행중인 docker process
- docker stop web
- web이라는 Image stop
- docker rm web
- 컨테이너 삭제
- docker rm image web or docker rmi web
- web이라는 Image 지우기
- 현재 이미지를 사용하는 모든 컨테이너를 중지 및 삭제
- docker stop $(docker ps -aq --filter ancestor=mv1-1/gis:latest)
- docker rm $(docker ps -aq --filter ancestor=mv1-1/gis:latest)
Container Image layer
var/lib/docker/overlay2
image layer가 존재하는 디렉토리
docker run option
더보기
- --name [컨테이너 이름] : 컨테이너 이름을 설정
- -d (또는 --detach): 컨테이너를 백그라운드 모드로 실행. 이 옵션을 사용하면 컨테이너가 실행되고 나서도 현재 터미널 세션과 상호 작용하지 않고 백그라운드에서 동작.
- -p (또는 --publish): 호스트와 컨테이너 간의 포트 매핑을 설정. '-p 호스트_포트:컨테이너_포트'와 같은 형식으로 사용되며, 호스트의 특정 포트를 컨테이너 내부의 포트와 연결하여 외부와 컨테이너 간 통신을 가능하게 함.
- -v (또는 --volume): 호스트와 컨테이너 간의 볼륨 매핑을 설정. '-v 호스트_경로:컨테이너_경로'와 같은 형식으로 사용되며, 호스트의 경로와 컨테이너의 경로를 연결하여 데이터를 공유하거나 저장할 수 있게 함.
- -e (또는 --env): 컨테이너 내부에서 사용할 환경 변수를 설정. '-e 변수=값' 형식으로 사용하여 컨테이너 내부의 프로세스에서 환경 변수를 사용할 수 있음.
- -it (또는 --interactive와 --tty): 컨테이너와 상호 작용하는 대화형 모드로 컨테이너 내부의 터미널에 접속. 이 옵션을 사용하면 컨테이너 내부에서 명령어를 실행하고 터미널 세션을 유지할 수 있음.
참조
더보기
- docker run option:https://mvje.tistory.com/165