전체 글 402

[Docker CE] gcloud 자격 증명 저장소 에러 ( docker.errors.DockerException: Credentials store error: StoreError('Credentials store docker-credential-gcloud exited with "".',) failed to execute script docker-compose )

gcloud 자격 증명 저장소 에러 ( docker.errors.DockerException: Credentials store error: StoreError('Credentials store docker-credential-gcloud exited with "".',) failed to execute script docker-compose ) 는 docker의 자격 증명 처리에서 설정이 엉키게 되어 발생 합니다. root 계정으로 사용중일 경우 /root/.docker/config.json 파일에서 문제를 확인할 수 있고 아래 명령을 입력하여 config.json 파일을 다시 정상 상태로 복구할 수 있습니다. docker logout docker login gcloud auth activate-serv..

Container/Docker 2020.01.21

[GCP] Google-Cloud-SDK 설치 (Centos7 minimal)

Google Cloud SDK 설치 python 2.7버전이 필요하기 때문에 우선 리눅스에서 python -v 으로 버전을 확인해줍니다. GCP로부터 이미지를 업로드 받거나 다운로드 받을 때 gcloud 라는 명령어가 필요 하기 때문에 Cloud SDK를 설치해야 합니다. ( CentOS 7 minimal을 기준으로 작성 합니다. ) 우선 아래와 같이 tee 명령어 및 내용을 작성 후 sdk를 설치 해주세요. sudo tee -a /etc/yum.repos.d/google-cloud-sdk.repo

Cloud/GCP 2020.01.21

[Docker CE] Centos 7 docker-compose 설치

Centos7 docker-compose 설치 방법 이고 root 계정으로 진행해야 합니다. (root계정이 아닐 시 sudo 사용) curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose # 바이너리 실행 권한 부여 chmod +x /usr/local/bin/docker-compose # docker-compose 설치되었는지 확인 docker-compose --version 만약 바이너리 실행 권한 부여할 때의 명령(chmod ~)이 실패 했다면 아래와 같이 심볼릭 링크 설정을 해주시면 됩니다. ln -s ..

Container/Docker 2020.01.21

[Docker CE] GCP Private Registry 구축 (Google Cloud Platform 사용)

GCP(Google Cloud Platform)을 사용한 Docker Private Registry 구축 입니다. GCP에 미리 계정을 등록 해두어야 하고 구글 계정에 신용카드 또는 계좌가 등록 되어 있으면 편합니다. (1년간 무료로 이용이 가능하고, 신용카드 또는 계좌를 등록하는 이유는 자동 가입을 막기 위해서라고 합니다. 1년 후 자동으로 유료버전으로 전환되지 않습니다.) 무료 버전 등록은 http://cloud.google.com 에서 구글 계정 로그인 후 무료로 실행하기를 눌러서 진행 하시면 됩니다. 1. Google Container Registry API 연동 GCP에서 Docker 이미지를 관리할 수 있는 Google Container Registry API를 제공 합니다. GCP 무료 버전..

Container/Docker 2020.01.21

[Docker CE] Docker Private Registry 구축(Docker Registry, WEB 사용)

Private Registry는 개인 저장소라고도 하며 Docker hub에서 제공하는 registry 이미지를 사용 해 컨테이너에서 이미지를 로컬 저장하는 방식 입니다. 하지만 GUI 환경을 지원하지 않는데, Docker hub에 GUI로 볼 수 있는 웹이 배포되어 있습니다. 웹 설정은 가장 마지막에 다루겠습니다. 그리고 Pricate Registry를 다룰때엔 반드시 최소한 볼륨을 이용해 데이터를 보존 하거나, 스토리지 또는 데이터 백업등을 통하여 데이터를 관리 해야 합니다. Private Registry는 registry 컨테이너가 삭제되면 모든 데이터가 삭제 됩니다. 1. Docker Private Registry 환경 구축 # Docker hub 공식 저장소에서 registry 이미지 다운로드 ..

Container/Docker 2020.01.20

[Docker CE] Automated Build를 이용한 Docker 이미지 build

Docker Automated Build를 이용한 Dockerfile로부터 이미지 자동 Build 입니다. (관리툴인 GitHub과 Bitbucket를 이용한 방법이 있는데, 이 글에서는 GitHub을 사용 합니다) 1. Docker Hub Repository 생성 http://hub.docker.com 에 접속하여 로그인 후 상단의 Repositories → Create Repository 클릭 합니다. Repository의 이름을 적어주고 이번 글에서는 Public으로 진행하기에 체크, Build Settings가 써있는곳에 고양이 모양이 있는것이 GitHub인데 누르고 로그인하여 연결 해줍니다. (GitHub 계정이 없다면 생성해야 합니다.) 연결이 완료 됬다면 Create 를 눌러서 생성 해줍니다..

Container/Docker 2020.01.20

[Docker CE] Dockerfile build Error (unable to find user [user] : no matching entries in passwd file)

"unable to find [user] : no matching entries in passwd file" 에러는 Dockerfile을 build를 할 때 발생 합니다. 발생 원인 위의 사진의 경우 빨간색으로 테두리된 사용자 계정(nirsa)이 /etc/passwd 파일에 존재하지 않음 (즉, 사용자 계정이 생성되지 않음) (Dockerfile 에서 USER 명령을 사용하여 RUN,CMD,ENTRYPOINT 명령을 특정 사용자로 실행하려 했을 경우 발생할 수 있음) 해결 방법 해결 방법은 비교적 간단한데, 문제가 되는 사용자 계정을 생성해주면 됩니다. Dockerfile에서 상단에 RUN useradd nirsa 등으로 사용자 계정을 생성 후 빌드를 시도 합니다.

Container/Docker 2020.01.19

[Docker CE] dockerfile 명령어 정리 (4) (USER, LABEL, EXPOSE, VOLUME)

1편 (RUN, CMD, ENTRYPOINT) : https://nirsa.tistory.com/66?category=868315 2편 (ONBUILD, STOPSIGNAL, HEALTHCHECK) : https://nirsa.tistory.com/68?category=868315 3편 (COPY, ADD, ENV, ARG, WORKDIR) : https://nirsa.tistory.com/69?category=868315 10. USER USER 명령은 RUN, CMD, ENTRYPOINT와 같은 명령을 실행하기 위한 특정 사용자를 지정해야 하는 상황에서 사용 됩니다. 아래와 같이 유저명:그륩명 또는 UID:GID 와 같이 사용 되고, 그륩명과 GID는 생략이 가능 합니다. USER [:] # 또는 U..

Container/Docker 2020.01.19

[Docker CE] dockerfile 명령어 정리 (3) (COPY, ADD, ENV, ARG, WORKDIR)

1편 (RUN, CMD, ENTRYPOINT) : https://nirsa.tistory.com/66?category=868315 2편 (ONBUILD, STOPSIGNAL, HEALTHCHECK) : https://nirsa.tistory.com/68?category=868315 4편 (USER, LABEL, EXPOSE, VOLUME) : https://nirsa.tistory.com/70?category=868315 들어가기전에... 간혹 override 라는 단어가 등장 하는데, 일반적으로 override는 물려받은 값(변수 등)을 다르게 만들어 생성하는 개념입니다. CMD에 선언한 명령을 ls라고 선언 후 conatiner run을 사용할 때 ps 를 사용 하거나, ENTRYPOINT에서 선언한..

Container/Docker 2020.01.19

[Docker CE] dockerfile 명령어 정리 (2) (ONBUILD, STOPSIGNAL, HEALTHCHECK)

1편 (RUN, CMD, ENTRYPOINT) : https://nirsa.tistory.com/66?category=868315 3편 (COPY, ADD, ENV, ARG, WORKDIR) : https://nirsa.tistory.com/69?category=868315 4편 (USER, LABEL, EXPOSE, VOLUME) : https://nirsa.tistory.com/70?category=868315 4. ONBUILD ONBULD는 조금 특이하게 처음 사용한 Dockerfeil 에서 빌드할 때(이미지 생성) 실행되는 명령이 아닙니다. ONBUILD 명령을 사용했던 이미지를, 다른 Dockerfile에서 FROM image를 사용하여 빌드 했을 때 동작 합니다. 일반적으로 사용하는 명령은 ..

Container/Docker 2020.01.18