Docker Private Registry 구축
·
⚙️ Ops/Docker
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":"..
Docker - Container Registry 구축
·
⚙️ Ops/Docker
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":"..
Docker - Logging
·
⚙️ Ops/Docker
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..
Docker - Network
·
⚙️ Ops/Docker
Docker Network 컨테이너 내부의 네트워크 인터페이스는 기본적으로 eth0과 lo 가 있다. 이 IP는 컨테이너 재시작 시 변경될 수 있고 내부망에서만 쓸 수 있는 IP이다. 그리고, 컨테이너 시작 시 마다 외부 연결을 위한 veth 네트워크가 호스트의 네트워크에 컨테이너의 수 만큼 생긴다. 또, 컨테이너의 외부망 연결을 위한 docker0 브릿지 네트워크도 존재한다. docker0 브릿지는 각 veth 인터페이스와 바인딩되어 호스트의 eth0과 연결을 해주는 역할을 한다. 즉, 컨테이너 eth0 -> veth -> docker0 -> 로컬의 경로로 외부 통신을 하는셈이다. 도커의 임베디드 네트워크 드라이버 bridge host none cantainer overlay Third-Party (f..
Docker - Volume
·
⚙️ Ops/Docker
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 파일 단위의 공유도 가능하다 ..