이미지를 입맛에 맞게 사용할때, 이미지를 새로 빌드하지 않고 실행시점에 ENTRYPOINT 를 엎어써서 사용하는게 유용하다. 이때, ENTRYPOINT 와 CMD 의 특징을 이해하고 작업하면 도움이 되므로 차이를 모른다면 아래글을 읽고 테스트해보자 2022.09.21 - [docker & kube] - [Docker] RUN, ENTRYPOINT, CMD 차이 이해하기 로컬에서 인사말 출력하기 이해를 돕기위해 아래와 같은 동작을 하는 쉘스크립트를 도커에서 어떻게 구성할지에 대해 접근해보자. 아래와 같은 쉘스크립트 동작을 도커에서 동작하게 한다고 가정한다. % cat /home1/user/hello.sh #!/bin/bash for name in $@ do echo "안녕하세요! 님 반갑습니다." done..
도커를 사용하다보면 사용하는 용량이 점점 커지면서 100% 채우면서 서버 로그인도 안되는 상황이 발생되기도 한다. 이럴때 할수 있는 조치는 크게 2가지가 있다. 1. 미사용 리소스 삭제하기 centos 기준 docker 의 기본 경로는 "/var/lib/docker" 인데, 이 하위 폴더에 다양한 임시파일이나 이미지 컨테이너 관련 파일들이 누적되면서 용량이 커지는 문제가 있다. 해당 폴더의 용량을 찾아보면 overlay2 폴더의 용량이 거대해지는 특징이 있는데 이런 경우 아래와 같이 명령어를 입력하면 미사용 리소스를 삭제하면서 용량이 확보된다. overay2 관련 내용이 궁금하면 아래 링크를 좀더 읽어보자. https://tech.kakaoenterprise.com/171 [컨테이너 인터널 #2] 컨테이..
windows 용 도커데스크탑을 설치하고, 명령어 프롬포트로 간단히 docker 프로세스 상태 확인 명령어를 날려보면 아래와 같은 오류가 발생한다. 이 상태는 docker 를 사용하기위한 세팅이 마무리 안되었기 때문이다. C:\Users\gildong>docker ps error during connect: This error may indicate that the docker daemon is not running.: Get "http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/containers/json": open //./pipe/docker_engine: The system cannot find the file specified. 상황파악하기 작업표시줄에 도커아이콘이 보..
Docker 기반으로 실행되는 기능을 사용할때 꼭 알아야할 간단한 명령어를 알아야 활용하기 좋다. 가장 기초적인 명령어를 알아보자 1. 이미지 목록확인 로컬에 받아진 도커 이미지를 확인하는 명령어이다. 처음 설치했다면 아래와 같이 아무것도 조회가 안된다. $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE 2. 이미지 가져오기 (pull) docker-registry 에 올려진 도커 컨테이너 이미지를 로컬로 가져오는 명령어이다. 기본적으로는 docker hub 의 이미지를 사용하기 때문에, 여기서 가져올땐 "이미지:버전" 만 기입하지만, 별도의 private docker reigistry 를 사용할때는 도메인이나 아이피를 지정해야하는 차이가 다르다. $ dock..
회사에서 private-docker-registry 를 구성해서, 딴 서버에서 컨테이너 이미지를 땡겨오려고 했는데 다음과 같은 오류가 발생했다. 신기한건 도메인을 써도 아이피를 써도 동일하게 안되는 현상이 있었다. $ docker pull docker-registry.myinfra.com:5000/sample:0.1 Error response from daemon: Get "https://docker-registry.myinfra.com:5000/v2/": http: server gave HTTP response to HTTPS client 해결방법 /etc/docker/daemon.json 파일을 추가해서 private docker registry 의 ip, domain 정보를 추가후 재기동하면 해결되..
docker 를 사용하다보면 내가 필요한 이미지를 만들어야 하는 경우가 생기고, 이 컨테이너 이미지를 업로드해서 사용해야할 상황이 발생된다. 여기서는 간단히 빌드를 하고, 이걸 private docker registry 에 업로드 하는 간단한 흐름을 정리해보겠다. (인터넷에서는 너무 조각내용으로 있어서 큰그림을 이해하기 어려운듯 하여 정리) 1. Dockerfile 우리가 개발할때 maven 은 pom.xml 에 빌드가 정의되고, gradle은 build.gradle 에 정의 되는것처럼 docker 컨테이너 이미지를 빌드할때 구성하는 파일은 Dockerfile 이라는 이름으로 구성을 한다. 아래내용은 로컬에 있는 readme.txt 파일을 컨테이너안에 복사하고, wget 모듈을 설치하는 간단한 샘플이다...
DockerRegistry 란? 도커이미지를 업로드하고 다운로드 할수 있는 저장소로 생각하면 쉽다. 우리가 maven 을 통해 deploy 하고 가져올수 있는것과 비슷하다. 기본적으로는 오픈된 https://hub.docker.com 을 이용해서 사용하는데, ip당 가져오는 횟수가 제한되어있기도 하고, 회사에서 별도로 이미지를 관리해야 하는 상황이 오면 결국 사내 DockerRegistry 를 운영할 수 밖에 없다. 여기서는 가장 쉽게 설치 가능한 방법을 알려주도록 하겠다. 1. 도커설치 초간단 설치가 가능한 이유는 Private Docker Registry 자체도 도커이미지로 존재하기 때문에 그걸 사용하기 때문이다. 물론 도커가 설치된 이후가 기본이겠지만 안되어있다면 도커부터 설치하도록 한다. 편의상 ..
이 오류의 원인은 결론부터 말하면, 요청횟수를 넘었다는 말이다. 이 말은 무엇이냐면, 도커의 이미지는 기본적으로 docker hub 에서 가져오게 되는데, 여기서 허용한 횟수를 넘었다는 말이다. ERROR: toomanyrequests: Too Many Requests. You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limits 원인 dockerhub 에 방문해보면 가격정책에 개인사용자의 경우 6시간마다 200개의 이미지만 pull 할 수 있는 제약이 존재한다. 개인이 이 횟수를 넘기는 쉽지 않지만, 하나의 서..