나의 발자취
Docker에 대한 기본 개념 정리, Docker 기본 명령어 정리 본문
일단 기본적으로 아래 영상을 보면 도커에 대한 개념은 잡힐거다.
가상머신: 각각의 앱을 실행하기 위해 각각의 OS가 올라가므로 굉장히 무겁다.
도커: Container Engine(Docker)이라는 SW를 설치해 개별 컨테이너가 생성되어 각 앱을 고립된 환경에서 실행할 수 있다.
하이퍼바이저는 하드웨어와 운영체제 중간에 온다. 하이퍼바이저는 추상화를 시켜주는 작업을 한다. 하드웨어를 해주는 가상화 메모리들이...
docker 구성 요소와 도구
구성 요소
- Docker Engine(run time): dockerd <- docker engine API
- Docker Client(CLI): docker
- Docker Objects: Docker container, Docker image, Docker service
- Docker Registry
도구
- Docker Compose: docker-compose, docker-complse.yml
- Docker Swarm: docker swarm CLI, docker node CLI
도커 파일, 도커 이미지, 도커 컨테이너의 관계
'컨테이너를 실행한다' = 메모리에 올라갔다 = 운영체제에서 프로세스가 실행중이다
컨테이너를 만들려면 Dockerfile, Image, Container가 필요하다.
Dockerfile: 컨테이너를 어떻게 만들어야하는지 작업지시서같은 역할
Image: 앱을 실행하는데 필요한 코드, 런타임, 환경, 시스템 툴, 시스템 라이브러리 등 -> 한번 생성 시 변경 불가능
Container: Image를 고립된 환경에서 실행할 수 있는 공간
도커 환경 아키텍처
도커 이미지 다루기: 주요 명령
일단 도커를 켜서 좌측 하단에 Engine Running인 상태임을 확인한다.
docker search [options] 검색어
e.g.) docker search --limit 5 mysql
- 도커 허브에 등록된 레포지토리 검색
- 공식 레포지토리 네임스페이스는 생략가능
해커들이 악의적인 파일을 올려두는 경우도 있기 때문에, 이미지를 내려받을 때는 조심해야 하고 OFFICIAL or STARS가 많은 이미지를 내려받는 것이 안전하다.
또한, 여기 앞에 있는 것이 네임스페이스라고 할 수 있다. 기본적으로는 도커에서 설정한 유저명이 나오게 된다.
따라서 뭐 특정한 레포지토리를 검색하고 싶을 때는 docker search [username]/검색어 이런식으로 할 수 있을거다.
docker pull : 도커 레지스트리에서 이미지 내려받기
##Docker Hub 레지스트리에서 ASP.NET Sample 앱 이미지 검색
docker pull mcr.microsoft.com/dotnet/samples:aspnetapp
docker pull mcr.microsoft.com/mcr/helloworld
e.g.) docker image pull <옵션>
참고로, 아래와 같이 찾을 수 없다고 나오는 경우에는 네임스페이스가 변경되는 경우도 있기 때문에, 최신으로 변경된 네임스페이스를 확인해준다.
이미지 목록 확인
docker image ls
docker images
똑같은 역할을 하는 것 같다.
docker image tag : 이미지에 태그 추가
- docker image의 버전은 image ID인데, tag 명령어는 image ID에 붙이는 alias/별명/식별자라고 생각하면 된다.
- tag 하나당 image 하나
e.g.) docker image tag <원본 이미지(:태그)> <새 이미지(:태그)>
docker image tag microsoft/aci-helloworld:latest hello.docker/aci-helloworld:latest
밑줄 친 부분은 생략가능하다.
docker image tag microsoft/aci-helloworld:latest hello.docker/aci-helloworld:latest
docker tag mcr.microsoft.com/dotnet/samples:aspnetapp hello.docker/samples
이렇게 기존에 존재하는 도커의 이미지에 태그를 붙이게 되면, 이미지를 복사하게 된다. (Copy As...와 비슷)
위의 소스코드 중 두번째 줄로 설명하자면,
docker tag mcr.microsoft.com/dotnet/samples:aspnetapp hello.docker/samples
Copy Copy As...
이렇게 되는 것이다.
참고로,
지금 <원본 이미지> 부분은 :aspnetapp 이라는 tag가 붙어있고,
<새 이미지> 부분에 별도로 태그를 붙여주지 않았을 때에는, default tag 값인 latest가 붙게 된다.
그리고 VS Code 옆 Docker Extension을 보면, 방금 다운받은 이미지들과 태그들을 볼 수 있다.
마우스 우클릭을 하면 docker 명령어로 실행할 수 있는 동작들을 gui 형식으로도 제공한다.
'Backend' 카테고리의 다른 글
도커 컴포즈, Azure에 도커 yml 업로드해서 앱 배포하기 (3) | 2024.11.01 |
---|---|
Dockerfile 문법, 도커 이미지 생성 도커 컨테이너 수명 주기, 도커 명령어 (13) | 2024.11.01 |
[Node.js] MongoDB, Mongoose 활용해서 CRUD 기능 게시판 만들기 (2) | 2024.10.18 |
[Node.js] JWT 인증 개념 및 활용 (3) | 2024.10.18 |
[Node.js] ORM sequelizer, Postgres 사용해서 MVC 패턴 적용해보기 (4) | 2024.10.17 |