⚙️ Ops/Docker2023. 5. 30. 16:22Docker Private Registry 구축

Docker Container Registry 구축 Docker Hub에 프로젝트 내용을 올리면 안되니 Local에 이미지들을 저장합니다. Docker Login $ docker login -u [닉네임] Docker Registry Base Image 가져오기 $ docker pull registry:latest insecure 설정 아래 내용 전부 다 작성, Local-IP 부분엔 자신의 로컬머신 or 인스턴스 IP를 적는다 $ vi /etc/docker/daemon.json { "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": {"max-size": "100m"}, "storage-driver":"..

⚙️ Ops/Docker2023. 5. 26. 14:56Docker - Container Registry 구축

Docker Container Registry 구축 Docker Hub에 프로젝트 내용을 올리면 안되니 Local에 이미지들을 저장합니다. Docker Login $ docker login -u [닉네임] Docker Registry Base Image 가져오기 $ docker pull registry:latest insecure 설정 아래 내용 전부 다 작성, Local-IP 부분엔 자신의 로컬머신 or 인스턴스 IP를 적는다 $ vi /etc/docker/daemon.json { "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": {"max-size": "100m"}, "storage-driver":"..

⚙️ Ops/Docker2023. 5. 13. 22:42Docker - Logging

Logging 도커는 컨테이너의 표준출력(stdout)과 에러(stderr)를 별도의 Metadata 파일로 컨테이너 내부에 저장한다. 저장 경로는 컨테이너 내부의 /var/lib/docker/containers/{container-id}/{container-id}-json.log 의 경로로 저장된다. 아래 명령어는 도커 컨테이너 내부의 로그를 출력하는 기본적인 명령어와 옵션들이다. # 컨테이너 내부 로그 출력 $ docker logs {container-name} # 컨테이너 내부 로그 끝 2줄만 출력 $ docker logs {container-name} --tail 2 # 컨테이너 내부 로그의 특정 시간대 검색 (유닉스 시간대 기준) $ docker logs {container-name} --sin..

⚙️ Ops/Docker2023. 5. 9. 23:37Docker - Network

Docker Network 컨테이너 내부의 네트워크 인터페이스는 기본적으로 eth0과 lo 가 있다. 이 IP는 컨테이너 재시작 시 변경될 수 있고 내부망에서만 쓸 수 있는 IP이다. 그리고, 컨테이너 시작 시 마다 외부 연결을 위한 veth 네트워크가 호스트의 네트워크에 컨테이너의 수 만큼 생긴다. 또, 컨테이너의 외부망 연결을 위한 docker0 브릿지 네트워크도 존재한다. docker0 브릿지는 각 veth 인터페이스와 바인딩되어 호스트의 eth0과 연결을 해주는 역할을 한다. 즉, 컨테이너 eth0 -> veth -> docker0 -> 로컬의 경로로 외부 통신을 하는셈이다. 도커의 임베디드 네트워크 드라이버 bridge host none cantainer overlay Third-Party (f..

⚙️ Ops/Docker2023. 5. 9. 22:16Docker - Volume

Volume 도커 컨테이너는 기본적으로 안에 들어있는 데이터들이 컨테이너가 종료되면 사라진다. 그런 Stateful한 상태에서 도커 컨테이너를 운용하는건 좋지 못하다. Stateless하게 외부에서 데이터를 마운트해서 가져오는 방법은 Volume을 이용하는거다. 호스트의 볼륨 공유 로컬의 디렉터리를 컨테이너의 볼륨과 마운트 한다. 볼륨마운트 하면서 환경변수를 넣고 포트포워딩하는 예시 docker run -it \ --name container1 \ -e MYSQL_ROOT_PASSWORD=password \ -e MYSQL_DATABASE=wordpress \ -v /home/wordpress_db:/var/lib/mysql \ -p 33006:3306 \ mysql:5.8 파일 단위의 공유도 가능하다 ..

⚙️ Ops/Docker2023. 4. 6. 22:09Docker Compose

💡 Docker Compose Syntax image - 이미지 지정 service - 컨테이너를 실행하는 단위, 하위에는 서비스 이름, 서비스 옵션 순으로 내려감 entrypoint - dockerfile 보다 docker compose의 entrypoint의 우선순위가 더 높다 build - dockerfile 지정 port - 포트포워딩 volume - 바인드 마운트, 볼륨 지정 envionment - 컨테이너의 환경변수 설정 depends_on - 실행순서 보장 옵션 expose - 컨테이너간 내부 포트 오픈(호스트 접근 불가) 설치 curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s..

⚙️ Ops/Docker2023. 4. 6. 21:59Docker Basic & Dockerfile Syntax

💡 Docker 명령어 docker cp /[direction] [file-name] [container-name]:/[direction] (로컬 -> 컨테이너 파일이동) docker pull & docker push (이미지 pull & push) docker run -d --privileged --name [name] -p 8080:80 centos:7 /sbin/init (컨테이너 백그라운드 실행) docker start CID or Name & stop CID or Name (컨테이너 시작 & 중지) docker rmi (이미지 삭제) docker rm (컨테이너 삭제) docker ps (실행중인 컨테이너 조회) & docker ps -a (실행 & 종료된 컨테이너 조회) rm /var/lib/..

image