설치
sudo apt-get install docker.io
redis 이미지 다운
docker pull redis
docker로 실행
docker run redis
이러면 실행되긴 한다.
하지만 더 자세한 설정을 해 줄 필요가 있다.
--rm : 실행 정지되면 자동으로 컨테이너를 지워 줌
-d : 백그라운드에서 데몬으로 실행됨
-p [외부포트 : 내부포트] : docker 컨테이너의 외부/내부포트 지정 => ex) -p 8080:6379
-v [외부 디렉토리 : 내부 디렉토리] : 실제 OS 폴더와 해당 컨테이너 내부의 폴더를 연결시켜 줌. 보통 컨테이너가 종료되면 해당 컨테이너에 저장되었던 데이터들이 모두 날아가는데, 이를 방지하기 위함이다.
Dockerfile (공식 문서, 명령어 : 참고 블로그)
- 이미지에 설정파일 같은 걸 저장해 둘 수 있고, 해당 이미지가 컨테이너로 등록되어 실행될 때 수행할 명령어같은 것들을 지정할 수 있다.
- Dockerfile이라는 이름으로 만들어야 한다.
- Copy명령어같은 것들은 현재 디렉토리 내부만 참조가 가능하다
1. 폴더 생성 및 redis.conf파일 생성
2. 해당 폴더에 Dockerfile 만들고 다음과 같이 작성
FROM redis
COPY redis.conf /usr/local/etc/redis/redis.conf
VOLUME /data
CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]
- 빌드하면 redis.conf파일을 이미지에 복사
- 컨테이너 내부의 /data폴더와 외부 폴더 연결시켜 줌. 외부 폴더는 docker 실행 시 파라미터로 설정 가능
- 컨테이너가 실행되면 내부적으로 redis-server /usr/local/etc/redis/redis.conf 명령 실행하도록 함.
3. Dockerfile 있는 폴더에 data폴더 생성
- 컨테이너 내부의 data폴더와 연결해서 데이터를 현재 OS에 저장하기 위함
4. 빌드
- docker build [options] path | url
docker build -t bin-redis .
*잘 안보이겠지만 저기 끝에 . 중요하다. 현재 경로.
이렇게 bin-redis라는 이미지를 만들었다.
이미지에는 Dockerfile로 설정했던 정보들이 저장되어 있다.
이제 실행할 때 -v 옵션으로 저장소를 연결해 주면 된다.
docker run --rm -d -p 6379:6379 --name binredis -v /home/hsb/mydocker/redis/data:/data bin-redis
이제 redis-cli를 이용해 접속해서 테스트해 보자
잘 접속된다.
외부 스토리지를 연결했기 때문에 docker를 중지하고 다시 실행해도 기존 데이터가 사라지지 않는다.
'팁' 카테고리의 다른 글
Chrome이 Multi Thread가 아닌 Multi Process를 이용하는 이유 (0) | 2021.06.15 |
---|---|
[tip] vscode가 렉이 심하다면 (0) | 2019.10.17 |
Phaser.js는 Tilemap 기능을 지원해 주는데, CSV파일을 사용할 수 있다. (0) | 2017.04.03 |
[Tip for emacs style] Windows에서 Capslock을 Ctrl로 변경하기 (0) | 2017.02.16 |
SVN 기호의 의미 (0) | 2016.12.14 |
[Tip] float 나누기연산에 대해.. (0) | 2016.09.08 |
[스크랩][UnitTest] googletest 세팅하는 법 (0) | 2016.09.07 |
[팁] 버젼 관리 규칙 ver1.0, ver 1.0.8, 등등에 대하여. (0) | 2016.08.21 |
[TortoiseSVN] Patch 사용하기 (0) | 2016.08.09 |
[Tip] 라이센스에 대하여 (0) | 2016.07.06 |