Docker

개발/Server

[Error][Docker] failed to create network network-name: Error response from daemon: Pool overlaps with other one on this address space

문제점 network-name이란 네트워크를 생성하는 데 다른 네트워크의 ip주소 범위와 겹쳐 발생하는 에러이다. 본인의 상황을 예시로 설명하겠다. 먼저 생성되어있던 다중 컨테이너 그룹1의 서브넷 네트워크를 172.16.0.0/16으로 생성했었다. 새로 생성하는 다중 컨테이너 그룹2의 서브넷 네트워크를 172.16.2.0/24로 생성하는데 문제가 발생했다. 먼저 생성되어 있던 그룹1의 호스트 주소가 172.16.0.0 ~ 172.16.255.255 까지 있을 수 있다. 근데 새로 생성하려는 그룹2의 서브넷 네트워크가 그룹1의 서브넷 네트워크의 호스트 주소에 포함되어 둘이 겹치게 되어 문제가 발생했다. 해결방법 방법은 여럿 존재한다. 1. 그룹1의 접두어를 /24로 변경 2. 그룹1과 그룹2가 겹치는 네트..

개발/Server

docker compose 작성 방법 및 명령어 모음

docker-compose 파일 작성 문법 비슷하거나 같은 의미인 것은 주석이 한번만 달려있음 # docker-compose 버전 명시 version: "3.9" ​ # 생성할 서비스(컨테이너) 지정 services: # nginx란 이름의 서비스 생성 nginx: # nginx:latest 이미지로 서비스 생성 # DockerFile기반이 아니라면 아래 image의 주석을 해제하고 build와 그 하위의 context와 dockerfuile을 주석처리해야함 #image: nginx:latest # nginx란 서비스를 실행하는 컨테이너의 이름 지정 container_name: nginx # DockerFile기반으로 서비스를 생성하기 위한 build명령 build: # DockerFile이 있는 경로 ..

개발/Server

docker 컨테이너 ip 고정

docker는 컨테이너들간, 외부 host와의 통신 위해 가상 linux bridge를 이용한다. 컨테이너 생성 시 네트워크를 지정하지 않으면 docker network ls 명령에서 나오는 것 중 bridge를 기본 네트워크로 사용한다. 기본 네트워크는 docker의 호스트 컴퓨터를 재시작하면 컨테이너에 할당했던 ip가 초기화되어 재할당시키므로 웹 서버나 db서버의 ip가 달라져 통신에 문제가 생길 수 있다. 이를 해결하기 위해 새로운 bridge를 만들고 컨테이너들을 기본 bridge가 아닌 새로 만든 bridge에 할당시킨다. docker network create --gateway 172.20.0.1 --subnet 172.20.0.0/16 myBridge 이후에 docker run 할 때 --..

개발/Server

[Docker][docker-compose] Nginx 컨테이너 생성 및 설정

이 글에선 mount, port 설정의 편의를 위해 단일 컨테이너를 생성하더라도 docker-compose를 사용한다. docker-compose.yaml version: "3.9" services: nginx: image: nginx:1.23.2 ports: - "80:80" environment: - TZ=Asia/Seoul # volumes: # - ./nginx.conf:/etc/nginx/nginx.conf ports는 "호스트포트:컨테이너포트" 형식이므로 "80:80"으로 설정한다. nginx에서 기본적으로 설정되어있는 포트가 80이므로 80을 연결한다. 이말은 설정에서 변경시키면 바꿔도 상관없다는 말이다. 호스트도 겹치지 않는 다른 포트로 설정해도 된다. environment는 컨테이너 생성..

개발/Server

docker 명령어

현재 설치된 이미지 목록 sudo docker images 이미지 추가 sudo docker pull imageName:tagName image와 tag는 docker hub에서 필요한 것을 검색해서 찾는 걸 추천 이미지 삭제 sudo docker rmi imageName:tagName 현재 실행중인 컨테이너 목록 sudo docker ps 컨테이너 정보 확인 sudo docker inspect containerName 컨테이너의 low level 정보를 반환해주는 명령어 컨테이너 추가 sudo docker run -d --name containerName -p hostPort:containerPort -e TZ=Asia/Seoul \ --restart=always -v hostDirectory:cont..

개발/Server

[Ubuntu] docker 설치

Ubuntu 20.04 LTS 버전에서 설치한 글입니다. 1. docker 저장소 설정 필요한 패키지 설치 sudo apt install ca-certificates curl gnupg lsb-release docker 공식 GPG키 추가 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg Stable버전 저장소 추가 후 갱신 echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://downl..

leebera_
'Docker' 태그의 글 목록