Docker란 무엇인가..에 대한 고찰

2taeyoon·2023년 11월 14일
0
post-thumbnail
post-custom-banner

🦮Docker란?

Docker는 간단한 명령어로 컨테이너 이미지를 생성하고 저장할 수 있는 서버 가상화 플랫폼입니다.

Docker Container는 가상화 기술 중 하나로 기존 가상화와 달리 프로세스를 격리시켜 동작하는 방식을 말합니다. ContainerContainer Image를 기반으로 실행되며, 도커를 사용하면 간단한 명령으로 Container Image를 만들고 저장할 수 있습니다. 또한 도커를 설치한 로컬에 Container Image를 다운로드하여 Container를 실행할 수 있습니다.


🦮Container Image?

그게 뭔데 씹덕ㅇ🥊...

Container Image앱을 실행하는 데 필요한 모든 파일, 라이브러리, 종속성 및 기타 필요한 설정을 포함하는 패키지입니다. Container Image는 앱의 환경에 관계없이 일관성있게 실행할 수 있도록 해주는 대단한 녀석입니다..응..그렇구나..

말 그대로 Container Image는 앱을 실행하기 위한 모든 것을 가지고 있기 때문에, 새로운 환경에서 더이상 설치할 필요가 없어집니다.

새로운 환경에서 미리 만들어놓은 Container Image를 다운받고 Container를 생성하면 새로운 환경에서도 앱을 실행할 수 있게됩니다.


🦮Docker Install

당연한 얘기이지만 공식 사이트에서 Docker를 다운을 받을 수 있습니다.
https://www.docker.com/

🦄Docker Hub

DockerHub 사이트에서 연습삼아 mongomongo-express를 검색하였습니다.
https://hub.docker.com/

docker pull mongo
docker pull mongo-express

위의 명령어로 mongomongo-express를 다운 받았습니다.

docker images

설치가 완료되면 위의 명령어로 다운받은 이미지를 확인합니다.

다운받은 이미지는 Docker DesktopImages에 저장됩니다.


🦄MongoDB 컨테이너 실행

이제 MongoDB 데이터베이스를 실행하는 Docker Container를 시작해야 합니다. 일반적으로 MongoDB는 27017 port를 사용한다고 합니다.

docker run --name my-mongo -d mongo

위의 명령어는 my-mongo라는 이름의 MongoDB 컨테이너를 생성하고 실행시켜줍니다.

🦄Mongo-express 컨테이너 실행

docker run --name my-mongo-express -d -p 8081:8081 --link my-mongo:mongo mongo-express

--name my-mongo-express : 컨테이너의 이름을 my-mongo-express로 설정합니다.
-d : 컨테이너를 백그라운드에서 실행합니다.
-p 8081:8081 : 호스트 8081 port컨테이너 8081 port를 연결합니다.
--link my-mongo:mongo : my-mongo 컨테이너와 연결하고, 컨테이너에서 mongo라는 이름을 참조할 수 있게 해줍니다.
mongo-express : mongo-express라는 Container Image를 의미합니다.

🦄Mongo-Express 접속

localhost:8081에 접속을 해줍니다.

사용자 이름과 비밀번호를 따로 설정하지 않았다면 기본값은 다음과 같습니다.

사용자 이름 : admin
비밀번호 : pass

Mongo Express라는 웹 사이트 화면이 출력됩니다. 컨테이너 실행된 거 맞죠..? 맞겠지..?😭


🦮Docker 명령어


컨테이너 이미지 목록

docker images


컨테이너 이미지 검색

docker search [이미지 이름]


컨테이너 이미지 받기

docker pull [이미지 이름]:[버전]


컨테이너 정보 확인

docker ps


모든 컨테이너 정보 확인

docker ps -a


컨테이너 이미지 삭제

docker rmi [이미지 id]


컨테이너, 이미지, 네트워크 모두 삭제

docker system prune


컨테이너 정지

docker stop "name or id"


컨테이너 바로 정지

docker kill "name or id"


컨테이너 접속

docker attach [컨테이너 id 또는 name]


컨테이너 실행

docker run [options] 이미지[:version|@DIGEST][COMMAND] [ARG...]

options : --name, -d, -p, --link 등..
version : 이미지의 특정 버전
@DIGEST : 이미지의 특정 인스턴스를 정확하게 지정(기본값은 latest)
COMMAND : 컨테이너가 시작될 때 실행할 명령을 지정(이미지에 따라 기본값이 설정되어 있음)
ARG : COMMAND에 전달할 추가 인수를 지정(선택사항)


컨테이너 시작

docker start [컨테이너 id 또는 name]


컨테이너 재시작

docker restart [컨테이너 id 또는 name]


Docker를 왜 사용하는지에 대한 것은 어느정도 이해한 것 같기는 하지만..공부를 더 해야한다..😥 사용법이라든지.. 사용법이라든지.. 사용법이라든지..🙄

profile
정리하면서 공부하기
post-custom-banner

0개의 댓글