[DOCKER] docker를 사용해 보자: 이미지와 컨테이너 #2
반응형

안녕하세요 😉

유유자적한 개발자 유로띠 입니다 😀

 

 

https://www.docker.com/docker-community

docker

 

두 번째 시간입니다 ✌

 

오늘 포스팅은 docker를 사용해 보는 시간이니

docker가 설치되어 있어야 합니다

 

이전 Docker 설치를 안 보신 분들은 여기를 참조해 주세요

[프로그래밍/Docker] - [DOCKER] docker를 설치해보자 #1

 

[DOCKER] docker를 설치해보자 #1

안녕하세요 😉 유유자적한 개발자 유로띠 입니다 😀 오늘은 Docker 에 대해서 포스팅해보도록 하겠습니다 😊 이번 포스팅에서는 ✅ Docker 설치 ✅ Docker 확인 에 대해서 알아보겠습니다 👏👏👏

msyu1207.tistory.com

 

 

이번 포스팅에서는

✅ Docker 이미지

✅ Docker 컨테이너 생성

✅ Docker 컨테이너 명령어

에 대해서 알아보겠습니다

 

👏👏👏👏

 

🎉 Docker를 사용해 보자


📢Docker 이미지

 

docker 이미지(images)란?

컨테이너를 생성할 때 필요한 요소이며 읽기 전용으로 사용됩니다 

이미지는 여러층의 바이너리 파일이 존재합니다

 

 

✅ 이미지 형식

 

[이미지 이름]:[태그]

mongo:4.2

ubuntu:16.04

 

이미지 이름
이미지가 어떤 역할을 하는지 나타내며 어떤 이미지를 사용할 건지 말 그대로 이미지의 이름을 나타냅니다.
DB 이미지를 받을 거면 mongo 인지 mysql 인지 등등의 이름을 작성합니다

 

태그
해당 이미지의 버전을 나타내며 태그를 생략하면 도커 엔진은 이미지의 태그를 latest로 인식합니다

 

 

 

📍 Docker 이미지 조회하기

 

이미지는 Docker Hub 공식 이미지 저장소에서 조회합니다 😁

 

상단의 검색창에서 원하는 이미지를 검색합니다

저는 ubuntu를 검색해 보겠습니다

 

검색된 이미지 목록을 보시면 오른쪽에 OFFICIAL IMAGE가 나와있는 이미지를 추천드리며

해당 이미지를 클릭합니다 😊

 

 

오른쪽에 이미지를 내려받을 수 있는 명령어가 보입니다

(docker pull ubuntu)

 

하단에 내려보시면 Docker 이미지의 버전도 알 수 있습니다 😁

 

 

Docker 이미지를

어떻게 사용할지 알았으니

다음으로

Docker 컨테이너를 생성해 보겠습니다 👍

 


📢 Docker 컨테이너

 

docker 컨테이너(container)란?

도커 이미지로 컨테이너를 생성하면 작업할 수 있는 하나의 독립된 공간을 만듭니다

독립된 공간이기 때문에 컨테이너 안에서 어떤 것을 하든

호스트에는 어떠한 영향도 주지 않습니다 👍

 

그럼 Docker 컨테이너를 생성하는

두 가지 방법에 대해서 알아보겠습니다 😁

 


📢 Docker 컨테이너 생성하기 : 첫 번째 방법

 

 

 

 

 

✅ 도커 이미지 내려받기

 

위의 docker hub에서 원하는 이미지를 찾으신 후 서버에서 도커 이미지를 내려받습니다

저는 mongo DB의 4.2 버전을 내려받도록 하겠습니다

#docker pull mongo:4.2

 

이미지를 제대로 받았는지 확인해 볼까요? 🧐

 

✅ 이미지 확인

#docker images

 

✅ 컨테이너 생성

 

mongo-db라는 이름으로 컨테이너를 생성합니다 

#docker create -i -t --name mongo-db mongo:4.2

 

 

✅ 컨테이너 시작

#docker start mongo-db

 

✅ 컨테이너 내부로 접속

#docker attach mongo-db

 

 

이처럼 docker 컨테이너 생성 방식은 다음과 같습니다 😁

 

docker 이미지를 내려받고(pull) 컨테이너를 생성합니다(docker create) 컨테이너를 기동 하고(docker start) 컨테이너 내부로 들어갑니다(docker attach)

 

 

 


📢 Docker 컨테이너 생성하기 : 두 번째 방법

 

 

도커 컨테이너를 만드는 두 번째 방법입니다

 

 

✅ docker run

 

docker run 명령어를 사용하여 컨테이너를 생성해 보겠습니다

저는 ubuntu 16.04를 사용해 보겠습니다

#docker run -i -t ubuntu:16.04
-i
상호 입출력

-t
tty를 활성화하여 bash 셸을 사용하도록 설정

 

 

끝입니다 👏👏

 

아마 ubuntu로 접속까지 되셨을 겁니다 👍

 

즉 run 명령어를 이용하여 pull create start attach 가 한 번에 진행됩니다 👍

 


📢 docker 명령어

 

 

컨테이너를 생성하였으니

컨테이너를 다루는

기본적인 명령어에 대해서 알아보겠습니다 🔎

 

 

✅ 외부에서 컨테이너 명령 실행

 

 exec는 외부에서 컨테이너 안의 명령어를 실행하는 명령어입니다

아래의 명령어를 보면 컨테이너 내부의 /bin/bash를 실행하고 -i -t 옵션을 이용하여 내부에서 명령어를 입력하고 해당 결과를 확인할 수 있습니다

 

아래처럼 입력하면 마치 docker attach 처럼 컨테이너 내부로 접속하여 명령어를 실행할 수 있습니다 👍

#docker exec <옵션> <컨테이너 이름> <명령> <매개 변수>
#docker exec -i -t ubuntu:16.04 /bin/bash

 

✅ 컨테이너 목록

#docker ps

 

 

✅ 컨테이너 전체 목록

 

정지되어있는 컨테이너까지 확인하려면 -a 옵션을 붙여 줍니다

#docker ps -a

 

✅ 컨테이너 이름 변경

#docker rename [현재 이름] [변경할 이름]

 

✅ 컨테이너 삭제

#docker rm [컨테이너 이름]

컨테이너가 기동 중에 삭제 명령어를 실행하면 Error가 발생됩니다 😮

Error response from daemon: You cannot remove a running container 
2bd79cd3b9e312912eb0c937ee37c72497ada125a604831602652656c575a9db. 
Stop the container before attempting removal or force remove

 

 

✅ 컨테이너 강제 삭제

#docker rm -f [컨테이너 이름]

 

✅ 컨테이너 전체 삭제

#docker container prune

 

✅ 이미지 삭제

#docker rmi [이미지 ID]

 

 

💡 컨테이너 종료

 

컨테이너를 종료하는 방법은 다양하게 있습니다만 종류에 따라 종료 처리가 다릅니다

 

🔴 exit

🔴 Ctrl + D

 

해당 명령어를 이용하여 컨테이너를 종료하면 컨테이너 내부를 빠져나오면서 컨테이너도 같이 종료합니다

그럼 빠져나온 컨테이너의 STATUS는 아래와 같이 Exited (0) .. seconds ago 보이게 됩니다

 

🟡 Ctrl + P + Q

 

해당 명령어는 컨테이너 내부에서 빠져나오기만 하며 컨테이너는 종료되지 않습니다

 

 

 


📢 마무리

 

이번 포스팅에서는

✅ Docker 이미지

✅ Docker 컨테이너

에 대해서 알아보았습니다 😁

 

 

이밖에도 docker와 관련된  종류가 참많습니다

컨테이너를 통합 관리 : docker compose

도커 클러스터 : docker swarm

이미지 생성 파일 : dockerfile

 

하나씩 공부하가면서 포스팅 해 보도록 하겠습니다 ✌

 

👏👏👏👏👏

반응형