본문 바로가기
서버/도커

[도커] 리눅스 환경에서 컨테이너 활성화하기

by Yikanghee 2022. 2. 17.

리눅스 환경에서 컨테이너 활성화하기

  • 리눅스 환경에 도커 다운로드하기

sudo apt install docker.io

  • 도커 버전 확인

docker -v

  • 첫 번째 컨테이너 생성

docker run -i -t ubuntu:14.04

ubuntu:14.04는 컨테이너를 생성하기 위한 이미지의 이름

-i : 상호 입출력을 사용하도록 컨테이너를 설정

-t : tty를 활성화해서 배시(bash) 셸을 사용하도록 컨테이너를 설정

  • 오류 발생

docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/create: dial unix /var/run/docker.sock: connect: permission denied. See 'docker run --help'.

  • 해결

sudo chmod 666 /var/run/docker.sock

sudo chown root:docker /var/run/docker.sock

컨테이너 내부 접속 성공!

  • exit으로 컨테이너에서 빠져나오면서 동시에 컨테이너를 정지시킴

다른 방법으로는 Ctrl + P, Q를 입력 → 정지시키지 않고 빠져나올 수 있기 때문에 개발에 용이함

  • CentOS를 내려받아 컨테이너를 다시 생성

docker pull centos:7

  • 도커 엔진에 존재하는 이미지의 목록을 출력

docker images

방금 내려받은 centos:7 이미지와 이전에 내려받은 ubuntu:14.04 이미지가 존재하는 것을 알 수 있음

  • create를 사용한 컨테이너 생성과 접근

docker create -i -t —name mycentos centos:7

docker start mycentos

docker attach mycentos

create 명령어는 컨테이너를 생성할 뿐 컨테이너로 들어가지 않음

docker start명령어와 docker attach 명령어를 써서 컨테이너를 시작하고 내부로 들어감

  • 이번에는 Ctrl + P , Q로 컨테이너에서 빠져나옴

exit와는 다르게 컨테이너를 정지시키지 않고 컨테이너에서 빠져나옴

  • 컨테이너 목록을 확인함

docker ps

centos를 실행 중이기 때문에 목록에 centos:7이 떠있음

  • 모든 컨테이너 목록을 확인함

docker ps -a

  • 컨테이너에게 자동으로 할당되는 고유한 ID를 확인하기 위한 명령어

docker inspect mycentos | grep Id

  • COMMAND 설정

docker run -i -t ubuntu:14.04 echo hello world!

이미지에 내장된 커맨드는 docker run이나 create 명령어의 맨 끝에 입력해서 컨테이너를 생성할 때 덮어쓸 수 있음. 예를 들어, 아래의 docker run 명령어로 생성되는 컨테이너는 실행될 때마다 “echo hello world!”를 실행함

그러나 이 명령어로 생성된 컨테이너는 ubuntu:14.04 이미지에 내장된 커맨드인 /bin/bash를 덮어 쓰기 때문에 상호 입출력이 가능한 셸이 실행되지 않아 “hello world!”라는 내용만 출력되고 컨테이너가 종료됨

  • STATUS

컨테이너의 상태를 나타내며, 컨테이너가 실행 중임을 나타내는 ‘Up’ , 종료된 상태인 ‘Exited’, 일시 중지된 상태인 ‘Pause’ 등이 있음

  • RENAME

컨테이너의 이름은 ID와 마찬가지로 중복될 수 없지만 docker rename 명령어를 사용하면 컨테이너의 이름을 변경할 수 있음

docker rename angry_morse my_container

  • ps 명령어의 출력 결과를 들여쓰기하여 보고 싶을 때

docker ps —format “table {{.ID}\\t{{.Status}}\\t{{.Image}}”

댓글