Docker 게시글 모음
4. Docker 시작하기 <4. docker compose>
저는 ubuntu:16.04 환경에 go-ipfs이 설치된 컨테이너가 여러 개 필요하기 때문에 이를 이미지로 저장하려고 합니다.
이미지를 만드는 방법에는 1) 커밋, 2) 도커파일이 있습니다.
커밋은 명령어를 입력해가며 컨테이너에 layer를 하나씩 쌓아가며 이미지를 만드는 것이고,
도커파일은 이 과정을 하나의 파일로 수행할 수 있습니다.
0. 이미지 생성의 원리
예를 들어 go 이미지에 go-ipfs를 추가해서 (go+go-ipfs) 이미지를 만든다고 해봅시다.
이미지는 여러 '레이어'로 구성되어 있습니다.
컨테이너를 수정하면, 해당 변경 사항을 '레이어'로 저장하고, 해당 '레이어'를 포함하는 새로운 이미지를 만듭니다.
실제 레이어를 확인하고 싶으면 다음 명령어를 사용합니다.
$ docker inspect [컨테이너/이미지/네트워크/볼륨 등의 이름] |
$ docker inspect go-ipfs_install |
커밋은, 즉각적인 피드백이 가능하다는 것,
도커파일은 한 번에 수행할 수 있으며 설치된 파일들의 기록을 남길 수 있다는 점이 장점입니다.
명령어가 꽤나 많이 필요하기 때문에 저는 도커파일로 만들어보려고 합니다.
1. 도커파일 만들기
제일 좋은 건 도커 허브에 원하는 이미지가 있는 경우인데, 저는 일단 도커파일을 만들어 보겠습니다.
명령어가 까다롭군요. 다음에 따로 정리해봐야겠습니다.
https://github.com/zooyeonii/ipfs-docker
2. commit
$docker run -i -t --name ipfs_install ubuntu:16.04 |
위는 ubuntu:16.04 라는 이미지를 바탕으로 ipfs_install 이라는 컨테이너를 만든다는 뜻입니다.
그러면 ipfs_install 컨테이너 속으로 들어가게 되겠죠!
ipfs_install 이라는 컨테이너를 만들고, 그 안에 ipfs를 설치하였습니다.
이를 이미지로 만들고 싶습니다.
다음 명령은 ipfs_install 이라는 컨테이너를 ipfs_install:first 라는 이미지로 생성합니다.
$ docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] |
$ docker commit ipfs_install ipfs_install:first |
docker hub에 push 하기 위해서는 본인의 repository에 맞게 이미지의 이름을 재설정합니다.
$ docker tag [기존의 이미지 이름] [새롭게 만들 이미지 이름] |
$ docker tag ipfs_install:first zooyeonii/ipfs_install |
이제 더 이상 ipfs 부터 설치하지 않아도 됩니다!! ~.~
go version 1.14.2 와 go-ipfs를 설치한 Docker image를 도커 허브에 배포하였습니다.
go install version 1.14.2 Docker image : https://hub.docker.com/repository/docker/zooyeonii/go_install
go version 1.14.2 / go-ipfs version 0.5.0 installed Docker image : https://hub.docker.com/repository/docker/zooyeonii/go-ipfs
'AWS, Docker > Docker' 카테고리의 다른 글
Docker 활용하기 <1. 웹서버 설치 및 실행> (0) | 2022.02.17 |
---|---|
Docker 시작하기 <Error 기록> (0) | 2022.02.17 |
Docker 시작하기 <4. docker compose> (0) | 2020.08.11 |
Docker 시작하기 <2.컨테이너> (0) | 2020.06.27 |
Docker 시작하기 <1.설치와 재설치> (0) | 2020.06.27 |