분류 전체보기

save나 export와 같은 방법으로 이미지를 단일 파일로 추출해 배포할 수도 있지만 이미지 파일의 크기가 너무 크거나 도커 엔진의 수가 많다면 이미지를 파일로 배포하기 어렵다. 또한 도커의 이미지 구조인 레이어 형태를 이용하지 않으므로 매우 비효율적이다. 이를 해결하는 방법은 도커 허브(Docker Hub)를 사용하거나 도커 사설 레지스트리(Docker Private Registry)를 사용하는 방법 등 여러 가지가 있다. 레지스트리 컨테이너 실행 도커 사설 레지스트리를 사용하면 개인 서버에 저장소를 생성할 수 있다. 이 레지스트리는 컨테이너로서 구현되므로 이에 해당하는 도커 이미지가 존재한다. $ docker run -d --name myregistry -p 5000:5000 --restart=al..
save나 export와 같은 방법으로 이미지를 단일 파일로 추출해 배포할 수도 있지만 이미지 파일의 크기가 너무 크거나 도커 엔진의 수가 많다면 이미지를 파일로 배포하기 어렵다. 또한 도커의 이미지 구조인 레이어 형태를 이용하지 않으므로 매우 비효율적이다. 이를 해결하는 방법은 도커 허브(Docker Hub)를 사용하거나 도커 사설 레지스트리(Docker Private Registry)를 사용하는 방법 등 여러 가지가 있다. 도커 허브 사이트에서 이미지를 검색할 수 있고, 해당 이미지에 대한 정보도 확인이 가능하다. 도커 허브 저장소 생성 도커 허브에 이미지를 올리기 위해 로그인 후 저장소를 생성한다. 기본적으로 비공개(Private) 저장소가 아니라면 모든 사용자들이 읽기 권한을 가지게 된다. 비공개..
모든 컨테이너는 이미지를 기반으로 생성되므로 이미지를 다루는 방법은 도커 관리에서 빼놓을 수 없는 부분이다. 이미지의 이름을 구성하는 저장소, 이미지 이름, 태그를 잘 관리하는 것뿐만 아니라 이미지가 어떻게 생성되고 삭제되는지, 이미지 구조는 어떻게 돼 있는지 등을 아는 것 또한 중요하다. 도커 허브(Docker Hub) 도커 허브(Docker Hub)는 도커가 공식적으로 제공하고 있는 이미지 저장소로서, 도커 계정을 가지고 있다면 누구든지 이미지를 올리고 내려받을 수 있기 때문에 다른 사람들과 이미지를 쉽게 공유할 수 있다. 대부분의 이미지는 도커 허브에서 공식적으로 제공하거나 다른 사람들이 도커 허브에 이미 올려놓은 경우가 대부분이라서 애플리케이션 이미지를 직접 만들지 않아도 손쉽게 사용할 수 있는데..
컨테이너 자원 할당 제한 컨테이너를 생성하는 run, create 명령어에서 컨테이너의 자원 할당량을 조정하도록 옵션을 입력할 수 있다. 옵션을 설정하지 않으면 자원을 무제한으로 사용하기 때문에 호스트에 무리가 가게 되면 다른 컨테이너까지 영향이 미칠 수 있기 때문에 설정하는 것이 좋다. docker inspect 명령어를 사용해 현재 컨테이너의 설정된 자원 제한을 확인할 수 있다. $ docker inspect mysql ... "HostConfig": { ... "KernelMemory": 0, "KernelMemoryTCP": 0, "MemoryReservation": 0, "MemorySwap": 0, "MemorySwappiness": null, "OomKillDisable": null, "Pi..
컨테이너 내부에서 어던 일이 일어나는지 아는 것은 디버깅뿐만 아니라 운영 측면에서도 중요하다. 도커는 컨테이너의 표준 출력(StdOut)과 에러(StdErr) 로그를 별도의 메타데이터 파일로 저장하며 이를 확인하는 명령어를 제공한다. docker logs 명령어를 사용해 컨테이너의 표준 출력을 확인할 수 있다. $ docker run -d --name mysql \ -e MYSQL_ROOT_PASSWORD=1234 \ mysql:5.7 $ docker logs mysql 2022-12-27 10:19:09+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.40-1.el7 started. 2022-12-27 10:19:10+00:00 [N..
도커 클라이언트 관련 명령어 ▶ 도커 버전 출력 $ docker version ▶ 도커 상세 정보 출럭 $ docker info ▶ 도커 허브 로그인 $ docker login -u ▶ 도커 허브 로그아웃 $ docker logout 이미지 관련 명령어 ▶ 컨테이너 이미지 생성 $ docker commit : 옵션 설명 -a "" 작성자 설정 -m "" 메세지 설정 ▶ 이미지 목록 출력 $ docker search 옵션 설명 --automated=false Automated Build만 출력 --no-trunc=false 모든 결과 출력 -s[--stars=n] star 수가 n개 이상인 결과 출력 ▶ 이미지 다운받기 $ docker pull ▶ 이미지 목록 출력 $ docker image ls $ ..
도커 네트워크 구조 도커는 컨테이너에 내부 IP를 순차적으로 할당하는데, 이 IP는 컨테이너를 재시작할 때마다 변경될 수 있다. 이 내부 IP는 도커가 설치된 호스트, 즉 내부 망에서만 쓸 수 있는 IP이므로 외부와 연결되어야 한다. 도커는 각 컨테이너에 외부와의 네트워크를 제공하기 위해 컨테이너마다 가상 네트워크 인터페이스를 호스트에 생성하는데 이름이 veth로 시작한다. veth 인터페이스는 사용자가 직접 생성할 필요는 없으며 컨테이너가 생설될 때 도커 엔진이 자동으로 생성한다. 도커가 설치된 호스트에서 ifconfig나 ip addr과 같은 명령어로 네트워크 인터페이스를 확인하면 실행 중인 컨테이너 수만큼 veth로 시작하는 인터페이스가 생성된 것을 확인할 수 있다. $ ifconfig docker..
만약 도커로 데이터베이스 컨테이너를 실행해 애플리케이션을 구동한다 했을 때 해당 데이터베이스 컨테이너가 삭제된다면 데이터도 삭제가 되고 복구할 수 없게 된다. 이런 경우에 데이터를 유지를 위한 몇 가지 방법이 있는데 그중 가장 활용하기 쉬운 방법이 볼륨 활용이다. 볼륨을 활용하는 방법은 여러 가지가 있다. 1. 호스트 볼륨 공유 호스트 볼륨 공유는 호스트화 컨테이너의 볼륨을 공유하는 것이다. 만약 MySQL 컨테이너를 사용해 애플리케이션을 구동한다 했을 때 호스트와 MySQL에서 데이터를 저장하는 볼륨을 공유할 수 있다. $ docker run -d \ --name mysql \ -e MYSQL_DATABASE=sample \ -e MYSQL_ROOT_PASSWORD=password \ -v /home/..
· 독서
명확함이 친절한 것이다. 우리는 대부분 명확하고 직설적인 표현을 회피하려는 경향을 띤다. 실제로는 불친절하고 부당하게 행동해야 할 때, 오히려 겉으로는 친절하게 말하기도 한다. 상대의 기분을 달래려는 반쪽자리 진실이나 허튼소리는 불친절한 행위이고, 결국 우리 자신이 편하기 위한 수단일 뿐이다. 기대치에 미치지 못했다는 이유로 동료를 비난하고 탓하는 것도 인정 없는 것이다. 뒷담화도 마찬가지 불명확한 말과 행동은 불친절한 것이다. 감추고 싶은 모습을 마주할 용기 대부분의 사람들은 수치심때문에 두려움에 대한 진실을 누구한테도 털어놓고 싶지 않아 한다. 두려움에 휩싸이거나 어떤 감정이 자기 방어를 재촉하면, 예측 가능한 순서에 따라 우리는 갑옷을 한 조각씩 조립해 간다. 그 때문에 더 큰 의도를 제대로 전달하..
· 독서
우리는 사회생활에도 해결하기 힘든 여러 문제와 직면하고, 끝없는 혁신을 요구받으며 살아간다. 복잡하고 급속하게 변하는 환경에서 리더가 성공하기 위해서는 리드하는 방법도 달라져야 한다. 어떤 리더가 좋은 리더고 성공할 수 있는 리더일까? 서점에서 리더의 용기라는 책을 들고 앞부분을 잠깐 읽어보았다. 나는 사회생활 속 리더가 아니고 리더가 될 능력도 안되지만 궁금하기도 하고 미래의 리더를 위해 이 책을 읽으며 기억해야 하는 부분을 정리하기로 했다. 길을 막고 방해하는 것이 길이 된다. 리더가 성공하기 위해선 더 대담하고 용기가 있는 문화가 있어야 한다. 수치심은 용기에 대한 거대한 장애물이자 끊을 수 없는 관계이다. 리더들이 조직의 원활한 운영을 방해하는 요인으로 제시한 행동이나 문화를 10가지로 정리하면 ..
beekei
'분류 전체보기' 카테고리의 글 목록 (3 Page)