[Docker] 개념 잡기

Ell!·2021년 12월 21일
0

개념 잡기

목록 보기
1/3
post-thumbnail

Docker

한 줄 핵심

도커는 여러 운영체제 등의 실행환경을 손쉽게 구성할 수 있게 해준다.

아래 내용은 생활코딩 - 도커 입문편의 요약입니다.

사용 방법

도커란?

도커는 리눅스의 container 기술을 사용하는데 도움을 주는 일종의 라이브러리.
host(우리 컴퓨터)위에서 돌아가는 container.
container 안에는 운영체제(OS)가 아니라 앱 실행을 위한 라이브러리와 실행 파일만 포함.

도커 설치

도커는 리눅스의 container 기술을 활용하기 때문에 리눅스 위에서 돌아감.
윈도우, mac위에서 설치하면 도커가 알아서 리눅스 서버로 가성머신을 만들어주고 그 위에서 실행.

기본 개념

docker pull

  • docker hub : 도커 이미지를 다운받을 수 있는 store
  • image : 다운(pull) 받는 프로그램
  • container : 이미지를 실행(run)

이미지를 다운(pull) 받아서 실행(run)하면 이미지가 container가 됨
한 개의 이미지에서 여러 container가 될 수 있다

docker pull Name (image 다운로드)
docker images (우리가 가진 image들)
docker rmi Name (이미지 삭제)

docker run

docker run [options] ImageName [COMMAND]
  • option
    --name Name : 해당 컨테이너 이름 지정

  • command : 해당 컨테이너에서 실행하고 싶은 명령어

docker ps (현재 실행중인 container 리스트)
docker stop Name (해당 컨테이너 중지 - 삭제 아님 -)
docker start Name (해당 컨테이너 start)
docker logs Name (로그 출력)
docker logs -f Name (로그 출력 watching)
docker rm Name (현재 실행 중이지 않은 컨테이너 삭제)

네트워크


자료 출처 : 생활코딩

  • host 위에 여러개의 container가 실행
  • container와 host 모두 독립적인 port, file system 보유
  • host의 80 port와 container의 80 port를 연결 -> port forwarding

  • 우리 host 몇 번 port에 들어왔을 때, 우리 container 80 port와 이어줄까? (apache web server는 80 기본)
docker run --name ws3 -p 8089:80 httpd
(p : publish)

http://localhost:8089 로 들어가면 접속

명령어 실행

실질적인 사용 위해서는 container 안에 들어가서 수정할 수 있어야 함!

docker exec Container Command

컨테이너 안에서 pwd라는 command 실행

만약 컨테이너와 지속적으로 연결을 하면서 명령어를 쓰고 싶다면??

docker exec -it ContainerName /bin/bash

exit (로 종료)
  • shell이라는 프로그램은 사용자의 명령 받아서 OS에 전달
  • -it : interactive , TTY (터미널과 지속적인 연결 위함)

호스트와 컨테이너의 파일시스템 연결

컨테이너에 들어가서 파일 수정하지 말고 host의 파일시스템에 연결한다면? (container가 삭제되었을 때 대비)

docker run -p 8888:80 -v ~/Desktop/htdocs:/usr/local/apache2/htdocs/ httpd
(-v : volumne) docker run volume 옵션 공부;..

3줄 요약

  1. 도커는 복잡한 실행환경을 대체하기 위함
  2. docker run 으로 image -> container
  3. docker exec 으로 container 내부 접근

참조

https://www.youtube.com/playlist?list=PLuHgQVnccGMDeMJsGq2O-55Ymtx0IdKWf

profile
더 나은 서비스를 고민하는 프론트엔드 개발자.

0개의 댓글