도커(Docker)란?
도커(docker)는 컨테이너 기반 가상화 플랫폼이다. 여러 응용 프로그램들을 컨테이너로 패키징 해서 실행할 수 있다.
이 글에선 도커를 간단하게 시작하고, 주요 명령어들을 확인하기 위한 예제를 위해 DB를 하나 띄워볼 것이다.
도커 이미지(image)
도커 이미지는 특정 소프트웨어(PostgreSQL 등)를 실행하기 위한 코드, 라이브러리, 설정파일, 종속성, 환경변수 등 모든 것을 포함하는 읽기 전용 템플릿이다. 이 템플릿을 기반으로 컨테이너를 생성하면 실제로 해당 소프트웨어를 실행할 수 있다.
기본적으로 Docker Hub에서 이미지를 갖고있고, docker 명령어를 통해 해당 이미지를 개인이 다운받아서 컨테이너 생성에 사용할 수 있다.
도커 컨테이너(Container)
도커 컨테이너는 위에서 다운받은 이미지를 기반으로 실제로 실행되어 동작하는 경량 가상환경 환경이다. "동적" 환경이라고 말할 수 있다. 도커 이미지는 실행을 위한 "정적" 템플릿인 것과 비교된다.
내가 local에 PostgreSQL 도커 컨테이너를 띄우려고 한다. 그럼 우선 Docker Hub에서 PostgreSQL 이미지를 다운받은 뒤, 해당 이미지를 기반으로 컨테이너를 생성한다고 생각하면 된다.
* Docker Compose
Docker Compose는 여러개의 Docker Container를 정의하고 관리할 수 있도록 도와주는 도구이다. docker-compose.yml 파일에 여러 컨테이너들의 설정을 코드로 정의하여 일관된 환경을 유지하고 쉽게 배포할 수 있다.
여러 컨테이너 간의 네트워크 연결, 각 서비스의 환경변수 관리 등 편리한 기능을 제공한다.
Docker Compose는 이 글에서는 자세히 다루지 않겠다.
도커 시작하기
1. docker 설치
sudo apt-get install docker.io
2. docker 설치 확인 및 실행
docker -v
service docker status
도커 설치가 끝났다.
Docker로 postgreSQL 띄워보기
1. 도커 이미지 pull
Docker Hub에 등록된 pgsql 이미지를 다운로드한다.
docker pull postgres
2. PostgreSQL 컨테이너 실행
postgresql의 기본 사용자 postgres 사용자의 비밀번호를 testpw로 설정하고, 이름이 test-pgsql인 도커 컨테이너를 띄운다.
- 컨테이너명: test-pgsql
- 비밀번호: testpw
- port: 5432
docker run --name test-pgsql -e POSTGRES_PASSWORD=testpw -d -p 5432:5432 postgres
3. PostgreSQL 컨테이너 동작 확인
컨테이너가 잘 싱행중인지 확인한다.
아래 명령어는 실행중인 모든 컨테이너 목록을 보여준다.
docker ps
4. PostgreSQL 데이터베이스에 접속
docker exec -it test-pgsql psql -U postgres
이제 해당 DB를 사용할 수 있다.
테스트용 DB를 하나 만들어보자.
create database test_db;
DBeaver에서 해당 DB 접근 example
5. 컨테이너 중지 및 재시작
컨테이너 중지
docker stop test-pgsql
재시작
docker start test-pgsql
기본적으로 도커 pgsql 이미지를 중지하면 데이터가 모두 사라진다.
도커 컨테이너는 일종의 임시 환경으로 동작하기 때문에, 컨테이너 자체에 저장된 데이터는 휘발성이다.
물론 Docker Volume을 사용하여 데이터를 영구적으로 저장할 수 있다.
Docker Desktop 소개
Docker Desktop은 도커를 관리할 수 있는 UI를 제공하는 소프트웨어이다.
아래 이미지와 같은 UI를 제공하여 편리하게 Docker를 사용할 수 있도록 도와준다.
https://docs.docker.com/desktop/install/windows-install/
'DevOps' 카테고리의 다른 글
[Web] Arachni Scanner 웹 취약성 진단 Tool (0) | 2024.09.26 |
---|