목록DevOps/Docker (7)
devops
Dockerfile을 이용해서 이미지를 빌드하다 보면 최종 컨테이너 이미지에 필요 없는 환경과 파일이 포함될 수 있다. 이를 해결하기 위해서 빌드와 실행을 구분해 이미지를 빌드할 수 있는 'Multi-stage build' 기능을 이용하면 된다. 위처럼 빌드를 통해서 text 파일이 생성되면, 이 파일만 이용해서 내용을 추가하고 최종 스테이지에선 필요한 파일만 사용할 수 있게 된다. # syntax=docker/dockerfile:1 FROM golang:1.16 AS builder WORKDIR /go/src/github.com/alexellis/href-counter/ RUN go get -d -v golang.org/x/net/html COPY app.go ./ RUN CGO_ENABLED=0 go..
위와 같이 아이디와 비밀번호를 정확히 입력했는데, 에러가 발생할 때 간단한 방법이 있다. 1. ~/.docker/config.json 파일에서 "credsStore": "desktop.exe" 부분을 ""로 바꾼다. 2. sudo systemctl restart docker 로 도커를 재실행한다. 다시 로그인하면 성공.
컨테이너를 만드는 3 요소 Dockerfile - Copy files, Install dependencies, Set environment variables, Run setup scripts Image - Appication(Setting file) Snapshot (변경불가) Container Dockerfile 작성 예시 FROM node:16-alpine WORKDIR /app //WORKDIR는 리눅스에서 CD와 같은 역할, 디렉토리를 생성하거나 해당 디렉토리로 이동 COPY package.json package-lock.json ./ RUN npm ci // install을 한다면 최선버전이 설치되기 때문에 프로젝트 개발버전과 설치버전이 달라질 수 있음 그래서 ci를 사용 COPY index.j..
docker create ecs 후에 모든 context 명령어를 쳐도 'context requires credentials to be passed as environment variables' 에러가 나온다면 default로 전환하여 해결할 수 있다. $ docker --context default context use default 위 명령어를 치자.
Command Docker 정보 docker -v, docker --vesion : 설치된 도커의 버전 확인 docker version docker system info Image 명령어 docker image pull [option] [:tag] ex) docker image pull nginx:latest (최신 버전 nginx 이미지를 다운로드) docker image ls : 도커 이미지 리스트 확인 docker image inspect [:tag] : 도커 이미지 상세 정보 ex) docker image inspect nginx:latest docker search [option] : 도커 허브에 있는 이미지 검색 docker container commit [option] : 해당 컨테이너를 이..
Docker Registry, Repository, Tag 레지스트리(Registry) - 도커 이미지를 관리하는 공간 - 도커 허브를 기본 레지스트리로 설정되어 있다. - 레지스트리는 Docker hub, Private Docker Hub, 회사 내부용 등으로 나뉜다. 레포지토리(Repository) - 레지스트리 내에 도커 이미지가 저장되는 공간 - 이미지 이름이 사용되기도 함 - Github의 레포지토리와 비슷한 역할 태그(Tag) - 같은 이미지지만 버전 별로 내용이 다름 - 해당 이미지를 설명하는 버전 정보를 주로 입력 - 되도록 latest 태그가 붙인 최신 버전을 사용 Docker Copy과 Volume CP(Copy) : Host와 Container 사이에 파일을 복사(Copy) Volum..
2013년에 등장한 도커(Docker)는 Docker Hub S/W 저장소와 함께 빠르게 성장하였고, 개발자들으느 쉽게 application을 포장하고 컨테이너 방식으로 실행할 수 있게되었다. 컨테이너는 쉽게 말해서, 실행 환경에 구애받지 않고 Application을 실행할 수 있다 컨테이너 기술은 어플리케이션을 컨테이너 내에서 구성한다. 그래서 컨테이너에서 실행 중인 어플리케이션은 어떠한 의존성도 공유하지 않고, 각자 고유의 의존성을 포함하고 있다. 이는 컨테이너가 실행환경과 격리되어 있기 때문에 가능하다. 컨테이너의 격리 요소 1. 프로세스(Process) 특정 컨테이너에서 작동하는 프로세스는 기본적으로 그 컨테이너 안에서만 액세스할 수 있으며, 컨테이너 안에서 실행되는 프로세스는 다른 컨테이너에 영..