Docker

개발하는 G0·2023년 4월 5일
0

https://www.youtube.com/watch?v=Bhzz9E3xuXY

vmware는 virtualization해서 컴퓨터를 새로 만드는 것
linux의 컨테이너 기술을 이용해 가상화를 하지 않고 프로세스만 격리해서 빠르게 실행시키는 기술
새로 운영체제를 깔아서 독립적인 환경을 세팅하는 것이 아니고
기존의 운영체제 안에서 프로세스를 격리시키는 기술을 이용해
마치 가상머신을 설치한 것과 거의 동일한 효과를 냄

virtual machine을 쓸 경우 용량을 크게 차지하고 느림. 쪼개 쓰기 때문에
도커는 프로세스를 격리만할뿐 os를 안에서 띄우지 않고 기존의 시스템을 공유함
99.8%

도커는 무조건 관리자 권한(sudo)으로 실행해야 함
도커와 도커허브의 관계는 깃과 깃허브의 관계와 비슷하다

이미지: 실행 파일과 라이브러리가 조합된 것을 이미지 파일로 만들어놓은 것
컨테이너: 이미지를 실행한 상태. 운영체제의 프로세스 같은 것.

  • docker run -i -t 이미지이름:태그 /bin/bash
    -i: interactive. 사용자가 입출력을 할 수 있게 한다는 뜻
    -t: sudo otty? 가상 터미널환경을 에뮬레이션 해준다는 뜻
    우분투같이 운영체제를 띄우는 경우에는 항상 -i와 -t 옵션을 준다.

  • docker run -d --name hello 이미지이름:태그
    사용자가 입출력할 필요가 없기 때문에 -i와 -t 옵션을 줄 필요가 없고
    -d 옵션을 주어서 백그라운드에서 실행하게 함
    --name 옵션을 주어서 hello라는 이름을 설정해 줌

도커는 메인 실행 파일을 지정을 해 주어야 함
컨테이너 안의 실행 파일을 실행해서 실행 상태를 만들어야 컨테이너가 유지가 됨
메인 실행 파일이 실행이 종료되면 컨테이너도 종료가 됨

  • docker start 컨테이너이름: 컨테이너를 실행만 시킴(들어가지는 않음)
  • docker ps: 살아있는 컨테이너 확인
  • docker ps -a: 종료된 컨테이너까지 확인
  • docker attach 컨테이너이름: 실행 중인 컨테이너 안으로 들어감
  • ctrl+p+q: 컨테이너를 죽이지 않고 살려둔 채로 빠져나옴 (리눅스 단축키임)
  • docker stop 컨테이너이름: 실행 중인 컨테이너를 종료시킴
  • docker rm 컨테이너이름: 저장되어있는 컨테이너의 껍질을 삭제함
  • docker rmi 이미지이름: 저장되어있는 이미지를 삭제함
  • docker images: 저장되어 있는 이미지 확인
  • docker pull 이미지이름:태그(ex: latest): 도커허브에서 이미지 가져오기
  • docker exec hello touch /a.txt: hello라는 컨테이너 안에서 루트에 a.txt 파일을 만듦

컨테이너 안에서 파일을 설치하거나 삭제하는 것은 이미지에는 전혀 영향을 끼치지 않음

  • docker attach : 실행 중인 bin/bash에 들어감
  • docker exec : 새로운 bin/bash(프로세스)를 만들어서 들어감
profile
초보 개발자

0개의 댓글