
- 컨테이너 내부에서 어떤 일이 일어나는지 아는 것은 디버깅뿐만 아니라 운영 측면에서도 중요합니다. - 애플리케이션 레벨에서 로그가 기록되도록 개발해 별도의 로깅 서비스를 쓸 수도 있지만 도커 컨테이너의 표준 출력(StdOut)과 에러(StdErr) 로그를 별도의 메타데이터 파일로 저장하며 확인하는 명령어를 제공합니다. [mysql 5.7이 설치된 컨테이너 생성 및 로그 남기기] # docker run -d --name mysql \ -e MYSQL_ROOT_PASSWORD=1234 \ mysql:5.7 - mysql과 같은 애플리케이션을 구동하는 컨테이너는 포그라운드 모드로 실행되므로 -d 옵션을 써서 백그라운드 모드로 컨테이너를 생성하는 경우가 많습니다. - 애플리케이션이 잘 구동되는지 여부를 알 수..

도커 네트워크 구조 - 도커는 컨테이너에 내부 IP를 순차적으로 할당 - 내부 IP는 컨테이너를 재시작할 때마다 변경될 수 있음 - 내부 IP는 도커가 설치된 호스트, 즉 내부망에서만 쓸 수 있는 IP이므로 외부와 연결될 필요가 있음 - 컨테이너를 시작할 때마다 호스트에 veth(Virtual Ethernet) 라는 네트워크 인터페이스를 생성 - 도커는 각 컨테이너에 외부와의 네트워크를 제공하기 위해 컨테이너마다 가상 네트워크 인터페이스를 호스트에 생성하며 이 인터페이스의 이름은 veth로 시작 - veth 인터페이스는 사용자가 직접 생성할 필요는 없으며 컨테이너가 생성될 때 도커 엔진이 자동으로 생성 - veth 인터페이스는 호스트가 갖고 있는 eth0, eth1 등과 연결되어 있음 - docker0 ..

도커 이미지로 컨테이너를 생성하면 이미지는 읽기 전용이 되며 컨테이너의 변경 사항만 별도로 저장해서 각 컨테이너의 정보를 보존한다. 이미 생성된 이미지는 어떠한 경우로도 변경되지 않으며, 컨테이너 계층에 원래 이미지에서 변경된 파일시스템을 저장 mysql 컨테이너를 삭제하면 컨테이너 계층에 저장돼 있던 데이터베이스의 정보도 삭제 도커의 컨테이너는 생성과 삭제가 매우 쉬우며, 실수로 컨테이너를 삭제하면 데이터를 복구할 수 없게 됨 이를 방지하기 위해 컨테이너의 데이터를 영속적(Persistent) 데이터로 활용할 수 있는 방법이 몇가지 있다. 그중 가장 활용하기 쉬운 방법이 볼륨(Volume)을 활용하는 것 [볼륨 활용 방법] 1. 호스트와 볼륨 공유 2. 볼륨 컨테이너 생성 3. 도커가 관리하는 볼륨 생..

대부분의 서비스는 단일 프로그램으로 동작하지 않는다. 예로 Web Service와 WAS, DB등은 서로 연결되어 완전한 서비스로서 동작하는 것이 일반적이다. 위 서비스들을 VM 형태가 아닌 컨테이너 환경으로 구축하게 된다면, 여러 개의 애플리케이션을 한 컨테이너, 즉 All-in-one 형태로 구축할 수 있다. 그러나 이 구조는 VM 구조 인프라에서도 권장하지 않는 환경이다. 1개의 애플리케이션을 1개의 VM 또는 1개의 컨테이너에 각각 구축하는 것이 모든 벤더에서의 권장 사항이다. 따로따로 서비스를 구축하면 VM간, 컨테이너간의 독립성을 보장함과 동시에 버전관리, 소스코드 모듈화등이 더욱더 쉬워진다. 도커 공식홈페이지에서도 위와 같은 구조를 권장하며, 한 컨테이너에 프로세스 하나만 실행하는 것이 도커..

컨테이너는 가상 머신과 마찬가지로 가상 IP 주소를 할당받는다. 기본적으로 도커는 컨테이너에 172.17.0.x의 IP를 순차적으로 할당 # docker run -i -t --name network_test ubuntu:14.04 # ifconfig - 위 그림과 같이, docker run 명령어를 통해 실행된 컨테이너의 IP는 172.17.0.x 대역인 것을 확인할 수 있다. - 도커의 NAT IP인 172.17.0.x 를 할당받은 eth0 인터페이스와 로컬 호스트인 lo 인터페이스가 있다. - 이 외, 어떠한 설정도 하지 않았다면 이 컨테이너는 외부에서 접근이 불가하고 도커가 설치된 호스트에서만 접근이 가능하다. **컨테이너내부 애플리케이션을 외부에 노출하기 위해서는 eth0의 IP와 포트를 호스트의..

1. Docker 엔진 버전 확인 # docker -v 2. Docker Run / 컨테이너 생성 및 실행 # docker run -i -t ubuntu:20.04 - Docker run 명령어는 컨테이너 생성 및 실행 - ubuntu 20.04 이미지가 로컬 도커 엔진에 존재하지 않으므로 도커 중앙 이미지 저장소인 도커 허브에서 자동으로 이미지를 내려받음 - 현재 컨테이너 내부로 들어온 상태 (호스트 네임변경) > 호스트네임은 무작위의 16진수 해시값 > -i 옵션 : 상호 입출력 설정 > -t 옵션 : tty를 활성화하여 배시(bash) 셸을 사용하도록 컨테이너 설정 > 위 두가지 옵션을 하나라도 사용하지 않으면 정상적으로 셸사용 불가 3. ls 명령어로 컨테이너 내부 확인 # ls 4. Docker..

1. Linux OS Version 및 Kernel Version 확인 # uname -a # cat /etc/lsb-release - uname -a 를 사용하여 OS의 Kernel Version 상세 확인 - lsb-release 를 통해 OS Version 확인 2. apt-key 저장소에 신뢰할 수 있는 키 등록 # curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - - 신뢰할 수 있는 APT Repository 키로 저장 * gpg란 ? - GNU Privacy Guard (GnuPG)의 줄임말로서 배포 파일의 인증을 확인하는데 사용되는 자유 소프트웨어 패키지 3. apt repository에 docker re..
도커 이미지 만들기 도커는 이미지를 만들기 위해 컨테이너의 상태를 그대로 이미지로 저장하는 단순하고 무식(?)한 방법을 사용합니다.create docker image예를 들어, 어떤 애플리케이션을 이미지로 만든다면 리눅스만 설치된 컨테이너에 애플리케이션을 설치하고 그 상태를 그대로 이미지로 저장합니다. 가상머신의 스냅샷과 비스므리한 방식입니다.이런 과정은 콘솔에서 명령어를 직접 입력하는 것과 별 차이가 없으므로 쉘 스크립트를 잘 알아야 하지만 좋은 샘플이 많이 공개되어 있어 잘 몰라도 크게 걱정하지 않아도 됩니다. 복붙만세! 또한 컨테이너의 가벼운 특성과 레이어 개념을 이용하여 생성과 테스트를 빠르게 수행할 수 있습니다.이제 Ruby로 만들어진 간단한 웹 애플리케이션을 도커라이징Dockerizing(=도..
도커 설치하기도커는 리눅스 컨테이너 기술이므로 macOS나 windows에 설치할 경우 가상머신에 설치가 됩니다. 리눅스 컨테이너 말고 윈도우즈 컨테이너라는 것도 존재하지만 여기서는 다루지 않습니다. Linux리눅스에 도커를 설치하는 방법은 자동 설치 스크립트를 이용하는 것이 가장 쉽습니다. 다음 명령어를 입력하면 root 권한을 요구하고 잠시 기다리면 설치가 완료됩니다. 음.. 참 쉽죠?1curl -fsSL https://get.docker.com/ | sudo sh sudo 없이 사용하기docker는 기본적으로 root권한이 필요합니다. root가 아닌 사용자가 sudo없이 사용하려면 해당 사용자를 docker그룹에 추가합니다.1 2sudo usermod -aG docker $USER # 현재 접속중..
컨테이너(Container) Docker를 이해하는데 있어서는 그 배경에 있는 컨테이너 기술이 어떤 것인지를 알아야 합니다. 컨테이너란 호스트 OS상에 논리적인 구획(컨테이너)을 만들고, 어플리케이션을 작동시키기 위해 필요한 라이브러리나 어플리케이션 등을 하나로 모아, 마치 별도의 서버인 것처럼 사용할 수 있게 만든 것입니다. 호스트 OS의 리소스를 논리적으로 분리시키고, 여러 개의 컨테이너가 공유하여 사용합니다. 컨테이너는 오버헤드가 적기 때문에 가볍고 고속으로 작동하는 것이 특징입니다. (보통 물리 서버 상에 설치한 호스트 OS의 경우 하나의 OS 상에서 움직이는 여러 어플리케이션은 똑같은 시스템 리소스를 사용합니다. 이때 작동하는 여러 어플리케이션은 데이터를 저장하는 디렉토리를 공유하고, 서버에 설..
- Total
- Today
- Yesterday
- k8s란
- 도커 설치
- docker volume
- Docker Port
- 도커 volume
- docker network
- docker
- docker 볼륨
- kubeadm
- CKA 시험
- docker create
- 쿠버네티스란
- 쿠버네티스
- 도커 포트
- 도커 볼륨
- 도커 포트 바인딩
- 쿠버네티스 설치 종류
- 도커 네트워크
- CKA 취득후기
- Docker 바인딩
- 쿠버네티스 설치 방법
- 쿠버네티스 종류
- docker pull
- 쿠버네티스 설치
- kubespray
- docker command
- docker run
- docker 설치
- 도커
- docker 명령어
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |