Docker 이미지 생성
로컬 환경에서 프로젝트를 구성해서 테스트를 구동시켜봐야 하는 환경이 필요해서 어떻게 넘겨 줄까 하다 필요한 서비스나 DB를 이미지로 빌드해서 dockerhub로 넘겨 볼까 생각하게 되서 해당 하는 명령어나 방법들을 적어봅니다.
1. Dockerfile를 통해 이미지 만들기
파일명을 Dockerfile로 해서 스크립트?를 작성하면 이미지를 만들 수 있다! 많은 키워드들이 있지만 제가 사용하는것만 간단하게 설명해보겠습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 베이스가 되는 이미지입니다.
FROM nginx:1.25
# 빌드하는 로컬환경을 파일을 이미지로 옮기기!
# chown 등의 권한을 설정할 수 있는 옵션도 제공하네요!
ADD test_file.txt /home/my_directory
# 어떤 포트를 사용할 건지 작성!
# 프로토콜도 정의해서 사용하는군요.
EXPOSE 7979/tcp
# Docker이미를 빌드하는 순간에 실행되는 명령어!
# 주로 라이브러리등의 설치등의 명령어에 사용한다합니다.
RUN npm install
# 컨테이너가 최초로 실행할 때 수행되는 명령어!
ENTRYPOINT ["echo", "hello2"]
# 컨테이너가 최초로 실행할 때 수행되는 명령어!
# 위와는 다르게 변경이 가능?하다고 하네요.
CMD ["echo" , "Hello"]
Dockerfile을 작성하고 이제 이미지를 빌드해봅시다.
1
docker build .
이것 저것 뚝딱 하더니 완료가 됐다면 docker images
로 이미지를 확인해 봅시다.
1
2
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 9b4763be3ebe 3 days ago 188MB
레포지토리 이름과 테그 이름이 none
으로 나오는군요. 그렇다면 설정해봅시다.
1
2
3
# docker build --tag [repository]:[tag] .
# ex)
docker build --tag test:1.0 .
1
2
3
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test 1.0 9b4763be3ebe 3 days ago 188MB
Good!
docker hub에 올리기!
기본적으로 https://hub.docker.com/ 회원가입이 되어있어야합니다. 다음 repository를 생성해보죵.
접근이 쉽게 잘 구성 되어있습니다. Create Repository 클릭해서 만들어 줍니다
repository 이름을 작성해고 우측에 시키는데로 명령어만 입력하면 끝입니다!
1
2
3
4
5
$ docker tag test:1.0 buckgusaud/test-repo:1.1
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test 1.0 9b4763be3ebe 3 days ago 188MB
buckgusaud/test-repo 1.1 9b4763be3ebe 3 days ago 188MB
마무리로 push 해주면 됩니다
1
docker push buckgusaud/test-repo:1.1
이제 다른 PC에서도 docker pull buckgusaud/test-repo:1.1
로 docker hub의 이미지를 내려 받아서 실행할 수 있습니다.
사용하면서 부족한거 좀 더 공부하기..!