Docker

Cloud/Docker

도커 허브에 push, pull을 이용하여 도커 이미지 버전 관리하기

도커 허브를 통해 push, pull을 이용하기 위해서는 로컬에 도커가 설치되어 있어야 하며, 도커 허브에 가입되어 있어야 한다. 일단 첫 번째로 도커 허브에 가입한다.  도커 허브 : https://hub.docker.com/ Docker Hub Container Image Library | App ContainerizationDeliver your business through Docker Hub Package and publish apps and plugins as containers in Docker Hub for easy download and deployment by millions of Docker users worldwide.hub.docker.com 그 다음 Create repositor..

Cloud/Docker

docker compose을 이용하여 django, postgres 연결하기

일단 해당 작업을 하기 전에 현재 나의 폴더 구성을 보여주자면 아래와 같이 되어 있다. backend 폴더는 django 프로젝트로 되어 있고 이를 이미지로 빌드하기 위해서 backend안에 Dockerfile 생성하여 만들었다. 🐳 Dockerfile FROM python:3.9 WORKDIR /app COPY requirements.txt ./ RUN pip install --no-cache-dir -r requirements.txt COPY . . CMD [ "python", "manage.py", "runserver", "0.0.0.0:8000" ] 📄 requirements.txt ... ... ... psycopg2 여기서 psycopg2 라이브러리는 python에서 postgreSQL을 사용..

Cloud/Docker

docker compose로 컨테이너 관리하기

도커 컴포즈 도커 컴포즈는 단일 서버에서 여러개의 컨테이너를 하나의 서비스로 정의하여 컨테이너의 묶음으로 관리할 수 있는 작업환경을 제공하는 관리도구를 의미한다. 여러 개의 컨테이너가 하나의 어플리케이션으로 동작할 때 도커 컴포즈를 사용하지 않는다면 일일이 하나씩 컨테이너를 만들어야하는데 해당 방법으로 한다면 관리가 쉽지 않다. 이런 단점을 보완하기 위해서 나온 것이 도커 컴포즈이며 이를 통해 여러개의 컨테이너의 옵션과 환경을 정의하는 파일을 읽어 컨테이너를 순차적으로 생성하는 형식으로 간편하게 여러개의 컨테이너를 관리 할 수 있다. 아래는 도커 컴포즈 파일의 예시이다. 참고로 yaml 파일은 뛰어쓰기 2칸을 기준으로 영역을 구분한다. 🐋 docker-compose.yaml version: "3.8" s..

Cloud/Docker

맥 M1, M2 에서 linux/amd64로 docker 빌드하기

맥 m1, m2 OS는 기본적으로 arm 기반으로 아키텍처를 이용하기 때문에 m1 노트북으로 도커파일을 빌드하여 도커 이미지를 만들게 된다면, 플랫폼이 linux/arm64 버전으로 생성이 된다. 우리가 일반적으로 서버에서 사용하는 OS는 linux/amd64 즉 arm이 아닌, amd 이기 때문에 이미지를 만들 때, --platform 옵션을 지정해줘야 한다. docker build --platform linux/amd64 -t docker-test .

Cloud/Docker

도커 컨테이너에 접속하여 파일 수정하기

도커 컨테이너에 접근하기 위해서는 아래 명령어를 이용한다. docker exec -it [docker container_id] bash 가끔 컨테이너 내에서 내용을 수정해야 한다면 vim을 설치한다. apt-get upgrade apt-get install nano apt-get install vim # 파일 수정하기 vim [file_name]

Cloud/Docker

[Docker] 컨테이너 끼리의 통신

Docker에서는 컨테이너 끼리의 통신을 원할하게 하기 위해서 docker network을 사용하여 처리 할 수 있다. 1. docker network 을 생성한다. docker network create favorites-net 2. docker container 을 실행한다. 옵션으로는 --network 을 통해 docker network에 연결한다. docker run -d --rm --name mongodb --network favorites-net mongo 그 다음 같은 네트워크에서 해당 컨테이너로 접근하여 데이터를 가져올 때에는, 컨테이너 명을 적어서 가져 올 수 있다. 다음은 그 예제 이다. # mongodb가 컨테이너 이름 이다. docker에서는 컨테이너 이름만 적으면 ip주소로 변환해..

Cloud/Docker

[Docker] 환경변수, env 파일 작업

1. Dockerfile에 기입해서 환경변수를 만드는 방법 🐋Dockerfile FROM node:14 WORKDIR /app COPY package.json . RUN npm install COPY . . ENV PORT 80 EXPOSE $PORT CMD ["node", "server.js"] Dockerfile 내에서 환경변수를 사용하기 위해서는 $을 사용한다. 2. 터미널내에서 컨테이너를 실행 할 때 옵션 값으로 넣어서 실행 docker run -e PORT=8000 -e NAME=JHEAON ... 3. .env 파일로 관리하여 실행 만약 환경변수를 사용하고 .env 파일을 만들어 관리하고 있다고 가정하고 도커 환경에서 컨테이너로 실행하고 싶다면 다음과 같은 명령어를 사용하여 도커를 실행한다. ..

Cloud/Docker

[Docker] 도커 볼륨과 바인드 마운트

Docker Volumes 도커의 볼륨이란 호스트 머신의 폴더이다. 즉 컨테이너의 내부의 폴더를 호스트 머신 상의 컨테이너 외부 폴더에 연결하는 역활을 하는 것을 의미한다. Docker Volumes 을 사용하는 이유 일반적으로 도커 이미지를 만들고, 컨테이너로 실행시키면 다음과 같이 도커가 실행이 된다. 만약 컨테이너에서 파일을 만들고 그 파일을 다룬다고 가정 했을 때, 모든 행위는 컨테이너에서 읽고, 써지기 때문에 컨테이너 외부에서는 해당 파일을 다루기가 힘들다. 따라서 해당 파일을 외부 폴더(로컬)에 연결하여 사용하기 위해서 도커의 볼륨을 이용한다. 📢 간단하게 말하자면, 컨테이너와 로컬간의 공통적인 참조 영역을 만들어주는 역활 일반적으로 컨테이너가 종료되면 컨테이너에서 만들어진 파일들이 삭제가 되..

Cloud/Docker

[Docker] Docker 자주쓰는 명령어

해당 명령어에 대한 옵션은 [docker 명령어 옵션 컨테이너/이미지] 순으로 사용된다. docker images :가지고 있는 모든 이미지를 표시한다. docker ps : 현재 사용하는 컨테이너의 목록을 보여줌 -a 옵션 : 모든 컨테이너의 목록을 보여줌 docker run : 새로운 컨테이너를 생성하고 시작합니다. (attached) - it 옵션 : input, output의 의미로 터미널과 소통 할 수 있게 만듬 -d 옵션 : detached 모드로 실행한다. --rm 옵션 : 컨테이너가 중지 할 때 컨테이너가 제거된다. --name 옵션 : 원하는 이름으로 컨테이너가 실행된다 docker start : 중지된 컨테이너를 시작한다.. (detached) docker create : 도커 이미지에..

JHeaon
'Docker' 태그의 글 목록