내가 만든 컨테이너를 도커 레지스트리에 배포하는 방법을 알아보자. 진행할 순서는 다음과 같다.
- 우분투 리눅스 이미지를 다운로드하여 컨테이너 실행
- apache2 서버 설치
- 웹 서비스가 동작하는지 확인
- 만들어진 이미지를 도커 허브에 배포
도커 컨테이너 구축
도커에서 이미지를 배포하기 전에 배포할 컨테이너를 만들어야 한다. 우분투 리눅스 이미지를 사용하여 apache 웹서버를 만들어본다.
# 우분투 컨테이너 생성 및 셸 접근
sudo docker run --name=ubuntu_webserver -dit -p 8080:80 ubuntu:latest
# 컨테이너 상태 확인
sudo docker ps
# 컨테이너 셸 접근
sudo docker exec -it ubuntu_webserver bash
# apache2 설치
sudo apt update
apt install apache2 -y
service apache2 start
update-rc.d apache2 defaults
exit
ubuntu의 경우 apache가 기본적으로 설치되어 있지 않아 직접 설치해야 한다. 도커와 무관한 내용이므로 자세한 설명은 생략하겠다.
도커 이미지 배포
생성한 컨테이너를 이제 배포해야 한다. 배포하기 위해서는 먼저 도커 허브에 회원가입을 해야 한다.
회원가입이 끝나면 다시 칼리 리눅스로 돌아와서 컨테이너의 이미지를 생성한다. 생성은 아래와 같이 commit 명령어를 사용하면 된다. 이후 ps 명령어로 생성된 이미지를 확인할 수 있다.
# 이미지 생성
sudo docker commit -a "제작자 이름" ubuntu_webserver webserver:1.0
# 이미지 확인
sudo docker images
명령어의 의미는 다음과 같다
- -a "kalionix" : 제작자 이름
- ubuntu_webserver : 이미지로 만들 컨테이너 이름
- webserver:1.0 : 생성할 이미지 이름
이미지를 생성했으면 이제 배포할 수 있게 이미지에 태그를 설정해야 한다. 여기서 반드시 도커 허브에 회원가입 할 때 사용한 이름을 입력해야 한다. 그러면 태그가 달린 이미지가 추가로 생성된 것을 볼 수 있다.
# 이미지 태그 설정
sudo docker tag webserver:1.0 이름/webserver:1.0
# 이미지 확인
sudo docker images
이미지가 성공적으로 생성되었으면 이제 도커 허브에 로그인을 하고 push로 배포하면 된다.
# 도커 허브 로그인
sudo docker login
# 이미지 배포
sudo docker push 이름/webserver:1.0
배포가 끝나면 도커 허브에서 Repositories에 들어가면 배포된 이미지를 확인할 수 있다. 이제 해당 이미지를 사용하고 싶으면 pull을 이용하여 가져오면 된다.
# 이미지 가져오기
sudo docker pull 이름/webserver:1.0