[ 이전 포스트 ]
https://sangbok-diary.tistory.com/22
도커 기본 사용방법에 대해서 알아보자
도커 사용법에 대해서 조금 더 알아보도록 하자 [ 이전 포스트 ] https://sangbok-diary.tistory.com/21 도커(docker) 란 무엇일까 ? 유데미에서 도커 강의를 들으면서 자료를 정리해보고자한다 [ 참고 블로그
sangbok-diary.tistory.com
1. 도커의 전달 방법
(1) Dockerfile
(2) DockerClient
(3) DockerServer
(4) UsableImage
도커는 위 순서대로 파일을 생성하여 클라이언트 - 서버에 전달하여 유저는 이미지를 사용할 수있게 한다.
이미지에는 파일과 실행명령어가 포함되어있으니
이러한 이미지를 생성해보자
2. 사용자 정의 이미지 생성
* cmd에 해당 명령어들 실행
(1) 디렉토리 생성
mkdir redis-image (redis-image라는 폴더 생성)
(2) 폴더 이동
cd redis-image
(3) vs code 실행
code
* code 실행을 위해서는 vs code가 설치되어있어야합니다
(4) vs code에서 새로운 파일 생성
임의로 Dockerfile이라는 파일 생성
(5) Dockerfile에 입력
(6) cmd 명령어 입력
docker build .
* 도커 파일을 이미지화 시키는 것으로, [ . ] 마침표는 빌드 컨텍스트를 의미한다
build 후 생성된 image 생성 아이디를 복사하여
docker run [ 생성 아이디 ]
로 tcp가 connections 되는 것을 확인 가능
3. 사용자 정의 이미지에서는 어떤일이 일어날까 ?
Dockerfile을 살펴보자
(1) FROM alpine
해당 명령어는 alpine에 기본 베이스를 사용하고 싶다고 말하는 것이다
그렇다면 왜 alpine인가 라는 질문에대한 대답은
우리가 Window, Mac Os를 사용하는 것과 같다
써야하는 기본 베이스이기때문이다.
(2) RUN apk add-update redis
apk add-update redis를 실행합니다
해당 명령어는 도커와는 관련이 없다
alpine에서 제공되는 apk 설치로 redis를 설치해달라는 것이다.
이러한 기능때문에 1번에서 베이스를 alpine으로 설정했다고 봐도된다
(3) CMD ["redis-server"]
redis server를 실행합니다
4. 다른 설치 파일도 같이 이미지화하여 가져온다면?
RUN apk add --update gcc
를 기존의 redis update 아래에 입력하자
그리고 난 뒤 다시 docker build . 으로 도커를 빌드하면
기존의 redis 까지의 과정은 이미 이전에 실행한 적이 있기 때문에, 캐시에 저장되어있어
다시 실행하지 않는 것을 확인할 수 있다.
build를 다시 실행해보면 gcc 까지의 이미지가 캐시에 저장되어있기에 빠르게 생성 아이디을 뱉어내는 것을 볼 수 있다
* 단, 기존의 redis, gcc 순이였던 run 순서를 gcc, redis 순으로 변경하면 다시 다운 받는 것을 알 수 있다. 이말은 Dockerfile을 변경하면 캐시의 저장에서 벗어난 다는 것을 확인 할 수 있다
5. 도커 이미지 태그 지정으로 받기
* 이미지 태그란? 말그대로 이미지에 이름을 붙이는 것이라고 생각하면된다.
docker build -t [이미지 네임]
-t 를사용하면 태그 지정이 가능하며,
이미지 설정 이름 / 버전
을 입력하면된다.
여기서 버전은 latest 를 입력시 가장 최신 버전을 설치할 수 있다.
실행 시 태그 이름인 도커id / 실행할 이미지 이름을 입력하면된다.
내 경우 sangbok 이 도커 id 인데
docker build -t sangbok/redis:latest .
으로 빌드하고
docker run sangbok/redis
를 실행하면 해당 이미지태그의 이미지가 실행되는 것을 확인 할 수 있었으며, 틀린 태그이름 입력시 실행되지 않는걸을 볼 수 있엇다
'Docker' 카테고리의 다른 글
도커 볼륨이란? (0) | 2024.01.30 |
---|---|
도커 컴포즈(Docker-Compose.yml) 란 무엇일까 ? (1) | 2024.01.29 |
도커로 Node.js 사용해보기 (0) | 2024.01.28 |
도커 기본 사용방법에 대해서 알아보자 (1) | 2024.01.26 |
도커(docker) 란 무엇일까 ? (0) | 2024.01.26 |