본문 바로가기
개발 지식 B+/devops

docker 설치 및 기본 문법

by ddubbu 2021. 2. 18.
728x90
반응형

 작업환경 세팅 로드를 줄여줄 docker 작업을 시작해보자

 


설치하기

 

환경

OS : ubuntu 20.04

 

Install using the repository

docs.docker.com/engine/install/ubuntu/

문서에 따르면 3가지 방법이 있다고한다. 필자는 첫번째 방법으로 최신버전(20.10.3) docker engine을 다운 받았다.

그리고 아래 방법으로 설치가 잘 되었는지 확인했다.

$ sudo systemctl start docker
$ sudo systemctl status docker
$ docker version

 

docker status

 


명령어별로 기술하여 깔끔한 참고자료

 

 

docker 이미지 관련 명령어

이미지는 Dockerfile 을 기준으로 빌드(생성)된다.

 

이미지 빌드

$ docker image build -t(이미지명, 태그명 지정) 이미지명:태그명 Dockerfile경로 //경로는 현재 작업 디렉토리와 같은 곳에 있다면 .

 

이미지 삭제

$ docker rmi image_id_1 [image_id_2, ...] // 띄어쓰기로 여러개 삭제 가능
// 실행중인 container가 있다면 잘 안 지워진다.

 

이미지 목록

$ docker image ls
// = $ docker images

 

 

docker 컨테이너 관련 명령어

이미지를 실행하면 컨테이너 상태가 된다. 즉, 파일 시스템과 앱이 담겨있는 실행환경이라 볼 수 있다.

3가지 상태가 존재 : 실행 중, 정지(다시 실행 가능), 파기(= 완전 삭제, 다시 실행 불가)

 

컨테이너 실행, 중지, 파기

$ docker container run image_name // 실행
$ docker container stop container_id // 중지
$ docker container rm container_id // 파기

 

컨테이너 파기할 때 이미지도 삭제하기

$ sudo docker-compose down --rmi all

 

컨테이너 목록

$ docker container ls (-a, 중지된 컨테이너 목록도 확인 가능)
$ docker container ps // 간략버전

 

실행 중인 컨테이너 명령

$ docker container exec container_id [command] // command ex) npm start

 

 

 

docker-compose

여러 container (실행 환경) 를 관리하기 위한 명령어

참고자료


$ docker container exec container_id [command] // command ex) npm start

docer-compose.yml

이 파일에서 실행할 여러 container 정보를 정의

 

도커 컴포즈 명령어

// 모두 앞에 다 sudo 붙이세요
$ docker-compose up (--build, 실행하면서 빌드 진행) (-d, background 실행) 
// 기본적인 이미지 실행 = container 생성
// (docker container run 단일IMAGE 와 유사) * 여러개를 한방에
// --build는 container 실행 전 이미지 빌드(생성)
// -d 이거 없으면 실행 log가 보이고, 터미널 사용 불가하네. [Ctrl] + C 로 나가기
$ docker container ls // 실행 중인 container 확인
$ docker-compose stop // 정지 -> 특정 id로 재시작 가능
$ docker-compose down // container, networks 정지 및 삭제 -> 이러면 이전 id로 시작 불가

$ docker start/stop/down specific_contaier_id // 

(왼) -d 옵션 사용 / (오) 사용 안함

 

 

 

 

큰 제목

 

소제목

 

내용

 


docker 관련 질문

 

1. container vs image

참고자료

이미지는 필요한 프로그램과 라이브러리, 소스를 설치한 뒤 파일로 만든 것입니다.(그래서 dependency 모두 설치하고 image build 하는건가?) 이 이미지를 공유함.

컨테이너는 이미지를 실행한 상태임. 이미지로 여러개의 컨테이너를 만들 수 있다.

 

2. 가상머신과의 차이점

gest OS 를 설치하지 않아 container라는 다른 이름을 붙인 듯

그런데 host OS 와 다를 경우에는 어떻게함?

 

 

docker 에러 모음

 

소제목

 

1. image 확인하기

  • 에러메세지
    Got permission denied while trying to connect to the Docker daemon socket
  • 해결방법
    sudo가 답인가.
$ sudo docker image ls

2. docker-compose 실행 에러

  • 에러 메세지
    PermissionError: [Errno 13] Permission denied
  • 해결방법
    sudo 붙여라

2. docker-compose 명령어 없음

  • 에러 메세지
    bash: docker-compose: command not found
  • 해결방법
    설치해주면 끝
    참고자료

 

 

반응형