안녕하세요 개발자 정씨입니다.
애플리케이션의 신속한 배포 및 스케일링, 개발 환경 일관성 보장 등으로 Docker의 중요성이 올라가고 있습니다.
해당 카테고리에서는 저 나름대로 Docker를 공부해보고 이를 정리해보겠습니다.
1. Docker란?
- 도커의 핵심은 "컨테이너"입니다.
- 컨테이너 안에는 어플리케이션과 그 어플리케이션이 동작하기 위한 모든 것(개발 환경)이 들어있습니다.
- 이 컨테이너를 다른 서버에 옮겨도, 어디서든 동일하게 동작합니다. 그래서 배포와 서비스 운영이 훨씬 간편해집니다.
2. 설치
- MacOS인 저는 brew를 이용해 설치를 진행했습니다.
brew install --cask docker
- 설치를 마치고나면 아마도 LaunchPad에 docker 아이콘이 생성되었을텐데요.
- 해당 아이콘을 이용해 도커가 정상적으로 실행되면 설치가 완료된 것입니다.

3. 컨테이너 실행 : hello-world
- 도커에서는 기본적으로 테스트 할 수 있는 간단한 컨테이너가 존재합니다. 아래와 같은 명령어로 실행 할 수 있습니다.
docker run hello-world
- cmd 창에서 "Hello from Docker!"라는 메세지를 확인할 수 있습니다.
- 하지만, "hello-world" 컨테이너는 실행 후에 자동으로 종료되는 간단한 테스트 컨테이너이기 때문에 컨테이너의 상태를 확인할 수 있는 아래 명령어를 입력해도 아무것도 나오지 않습니다.
docker ps
4. 컨테이너 실행 : MySQL
- MySQL의 공식 이미지를 Docker Hub에서 다운로드해야 합니다.
- 터미널에서 다음 명령어를 사용하여 MySQL 이미지를 다운로드합니다
docker pull mysql:5.7
- 아래 명령어로 컨테이너를 실행할 수 있습니다.
docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=비밀번호 -d -p 3306:3306 mysql:5.7
-d | 컨테이너를 백그라운드에서 실행합니다. |
--name mysql-container | 컨테이너 이름을 "mysql-container"로 지정합니다. |
-e MYSQL_ROOT_PASSWORD=비밀번호 | 환경변수를 설정합니다. MySQL의 계정정보를 설정합니다. |
-p 3306:3306 | 호스트의 포트 3306를 컨테이너의 포트 3306에 매핑합니다. |
- 'docker ps'명령어를 입력하면 아래와 같이 컨테이너가 실행중인 것을 확인 할 수 있습니다.
- 또한, 환경변수로 설정해준 계정 정보로 MySQL에 직접접속해도 정상 동작합니다.

5. 컨테이너 실행 : Redis
- 이번에는 Redis서버를 띄워보겠습니다.
- Redis 또한 아래 명령어를 사용하여 Docker Hub로부터 Redis 이미지를 다운로드 할 수 있습니다.
docker pull redis
- Redis 컨테이너를 실행합니다
docker run -d --name redis-container -p 6379:6379 redis
-d | 컨테이너를 백그라운드에서 실행합니다. |
--name redis-container | 컨테이너 이름을 "redis-container"로 지정합니다. |
-p 6379:6379 | 호스트의 포트 6379를 컨테이너의 포트 6379에 매핑합니다. |
- 이번엔 "docker ps"를 실행해봤을때 redis가 띄워져 있는 것을 확인 할 수 있습니다.
- 아래 명령어로 "redis-container" 컨테이너 내에서 Redis CLI를 실행할 수 있습니다.
docker exec -it redis-container redis-cli
'Docker & K8S' 카테고리의 다른 글
Chapter3 - docker-compose (0) | 2023.10.25 |
---|---|
Chapter2 - Dockerfile 작성 (0) | 2023.09.28 |