1. Docker란?
Docker는 쉽게 말해서 컨테이너 기반의 오픈소스 가상화 플랫폼입니다.
예전에는 서버의 버전도 정해져있기 때문에 해당 서버에 맞춰서 여러 프로그램을 설치하는 것도 일이였고,
시간이 흐름에 따라 서버 환경이 바뀌고 MSA(MicroService Architecture)로 인하여 분할하여 관리하다 보니
점점 복잡해졌습니다.
이런 상황 속에서 Docker가 나오게 되었는데
다양한 환경을 컨테이너로 추상화 하여 프로그램의 배포 및 관리를 단순하게 해줍니다. 컨테이너와 함께 중요한
포인트로 이미지가 있는데 이미지는 컨테이너 실행에 필요한 파일과 설정값 등을 포함하고 있는 녀석입니다.
이미지란 녀석은 말그대로 정보를 모두 가지고 있기 때문에 이것저것 건드릴 필요 없이 서버가 추가되면
이미지를 다운 받은 뒤 컨테이너를 생성만 해주면 됩니다. 하나의 서버에 여러 개의 컨테이너를 실행할 수 있습니다.
2. Docker 설치하기
우선 이전 버전을 제거합니다.
sudo apt-get remove docker docker-engine docker.io containerd runc
- 만약 이전 버전을 제거하지 않으면 설치 진행 중 충돌이 발생할 수 있습니다. (기존에 설치가 되어있을 시)
설치 script를 작성해줍니다.
curl -fsSL https://get.docker.com/ | sudo sh
설치가 완료되었다면 정상적으로 설치 되었는지 확인합니다.
docker version
출력물
Client: Docker Engine - Community
Version: 20.10.14
API version: 1.41
Go version: go1.16.15
Git commit: a224086
Built: Thu Mar 24 01:48:02 2022
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.14
API version: 1.41 (minimum version 1.12)
Go version: go1.16.15
Git commit: 87a90dc
Built: Thu Mar 24 01:45:53 2022
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.5.11
GitCommit: 3df54a852345ae127d1fa3092b95168e4a88e2f8
runc:
Version: 1.0.3
GitCommit: v1.0.3-0-gf46b6ba
docker-init:
Version: 0.19.0
GitCommit: de40ad0
만약 server 정보가 나오지 않고 permission denied 에러가 발생한다면 앞에 sudo를 입력하시면 됩니다.
3. 컨테이너 실행하기
간단하게 ubuntu 16.04 컨테이너를 생성 및 실행 시킵니다.
현재 이미지를 따로 만들지 않았기 때문에 DockerHub에 있는 이미지를 자동으로 불러와서 실행합니다.
docker run --rm -it ubuntu:16.04 /bin/bash
참고로 docker run에는 다양한 옵션들이 있습니다.
옵션 | 내용 |
-d | detached mode (백그라운드 모드) |
-p | 호스트와 컨테이너의 포트 연결 (포워딩) |
-v | 호스트와 컨테이너의 디렉토리를 연결 (마운트) |
-e | 컨테이너 내에서 사용할 환경변수 설정 |
--name | 컨테이너 이름 설정 |
--rm | 프로세스 종료시 컨테이너 자동 제거 |
-it | -i 와 -t를 동시에 사용한 것 터미널을 위한 옵션 |
--link | 컨테이너 연결 (컨테이너명:별칭) |
- -it처럼 단일 옵션은 연결하여 사용할 수 있습니다.
- 위에 옵션을 정리한 것 처럼 키보드 입력을 위하여 -it 옵션을 넣어주고 종료시 삭제될 수 있도록
--rm 옵션을 적용하였습니다.
정리
위처럼 Linux 환경에서 간단한 명령어를 통하여 Docker를 설치하고 이미지를 pull 받은 뒤 컨테이너를 생성 후
시작하는 간단한 작업으로 완료할 수 있습니다.
이번 포스팅에서는 이미 존재하는 이미지를 통하여 생성하였지만 다음 포스팅에서는 이미지를 직접 만들고
배포하는 방법에 대하여 작성해보겠습니다.
'Server > Docker' 카테고리의 다른 글
Windows 10 + WSL + Docker 설치하기 (0) | 2023.08.09 |
---|---|
Docker Image 생성 및 배포하기 (0) | 2022.04.19 |