도커 - 설치 & 기본 명령어

.·2021년 9월 19일
0
post-custom-banner

도커 설치

Linux

  1. 설치하기전 기본적으로 apt 업그레이드, 업데이트 실행
sudo apt update && sudo apt upgrade
  1. 필수 패키지 설치
sudo apt-get install apt-transport-https ca-certifacates curl gnupg-agent software-properties-common
  1. ubuntu 유저 권한 추가
sudo usermod -aG docker [user 이름]
  1. GPG Key 인증
curl -fsSL https://download.docker.com/linux/ubuntu/gg | sudo apt-key add -
  1. docker repository 등록
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
  1. apt docker 설치 : apt 명령어로 도커 설치
sudo apt-get update && sudo apt-get install docker-ce docker-ce-cli containerd.io

도커 설치 후 설치 확인

  1. 시스템 부팅 시 docker 가 시작되도록 데몬 설정
sudo systemctl enable docker && service docker start

도커 기본 명령어

run - 컨테이너 실행


예시 )

ubuntu 20.04 컨테이너 만들기

docker run ubuntu:20.04

run 명령어를 사용하면 사용할 이미지가 저장되어 있는지 확인하고 없다면 다운로드 (pull) 한 후 컨테이너를 생성(create) 하고 시작(start) 한다.

하지만 위 명령어를 친다면 컨테이너는 정상적으로 실행됐지만 뭘 하라고 명령어를 전달하지 않았기 때문에 컨테이너는 생성되자마자 종료된다.
컨테이너는 프로세스이기 때문에 실행중인 프로세스가 없으면 컨테이너는 종료된다.

조금 더 자세히 설명하면 도커 이미지마다 컨테이너가 만들어질 때 실행할 명령어를 지정할 수 있고, ubuntu:20.04는 "/bin/bash"가 지정되어 쉘이 실행되어야 프로세스가 계속 실행된다.

/bin/sh 실행하고 컨테이너 종료시 컨테이너 삭제

docker run --rm -it ubuntu:20.04 /bin/sh

컨테이너 내부에 들어가기 위해 sh를 실행하고 키보드 입력을 위해 -it 옵션을 줍니다.
또 프로세스가 종료되면 컨테이너가 자동으로 삭제되도록 --rm 옵션도 추가합니다.
--rm 옵션이 없다면 컨테이너가 종료되더라도 삭제되지 않고 남아 있어 수동으로 삭제해야합니다.

CentOS 실행하기

docker run --rm -it centos:8 /bin/sh

도커는 다양한 리눅스 배포판을 실행할 수 있습니다. 공통점은 모두 동일한 커널을 사
용한다는 점입니다.

ex)

MySQL 실행하기

docker run -d -p 3306:3306 \ 
 -e MYSQL_ALLOW_EMPTY_PASSWORD=true \ 
 --name mysql \ 
 mysql:5.7

-d 옵션을 줘서 백그라운드에서 실행된다.
--name 옵션을 부쳐서 container 이름을 지정했다.
-e (환경변수 설정) 옵션을 줘서 mysql 비밀번호는 없어도 된다고 지정했다.

exec 명령어

docker exec -it mysql mysql 

exec 명령어는 run 명령어와 달리 실행중인 도커 컨테이너에 접속할 때 사용하며 컨테
이너 안에 ssh server등을 설치하지 않고 exec 명령어로 접속한다.
서버에 ssh 를 설치해서 ssh로 접속할 수도 있지만,
보안을 위해 exec 로 접속하는 것을 권장한다.


이와 같이 도커를 사용하면 쉽게 프로그램 또는 서버를 실행하고 설치 또는 세팅할 수 있다.
또한 도커를 이용하면 포트를 다르게해서 여러개를 띄울 수 있다.
다시말해 한 컨테이너에 ubuntu:20.04 이미지를 담고, 또 다른 컨테이너에도 ubuntu:20.04 이미지를 담으면 한 컨테이너마다 ubuntu 가 독립적으로 2개가 실행되고 있다는 뜻이다.

profile
.
post-custom-banner

0개의 댓글