
도커 이미지는 readonly속성을 가지고, 컨테이너에 추가되는 별도의 데이터들은 rw 레이어에 저장이된다. 데이터베이스를 운영하는 경우 고객의 데이터들이 rw(read/write)레이어에 쌓이게 되는데, 컨테이너를 삭제하게 되면 이 데이터들이 다 사라지게 된다. 만약에 실수로 컨테이너를 삭제하게 된다면.....그 결과가 너무 무섭다.. 그래서 컨테이너가 만들어주는 데이터를 영구적 보존이 필요한 경우, docker host에 별도의 저장소를 만들어서 관리를 하게 된다. mysql 데이터베이스의 경우 rw 레이어의 /var/lib/mysql에 쌓이게 되는데 여기에 있는 데이터를 별도의 저장소에도 저장해주면 실수로 컨테이너를 삭제해도, 데이터는 남아있을 수 있다. VOLUME 옵션 -v [host path]..
docker 명령어를 통해 제한 할 수 있는 리소스 docker run 할 때 옵션을 사용하여 리소스를 제한 할 수 있다. 1️⃣ CPU 2️⃣ Memory 3️⃣ Disk I/O 1️⃣ CPU 제한하기 옵션 의미 --cpus 컨테이너에 할당 된 CPU core수를 지정 --cupset-cups 컨테이너가 사용할 수 있는 cpu나 core를 할당. cpu index는 0부터 --cpu-share 컨테이너가 사용하는 cpu 비중을 1024값을 기반으로 설정 $ docker run -d --cpus=".5" ubuntu $ docker run -d --cpuset-cpus 0-3 ubuntu $ docker run -d --cpus-shares 2048 ubuntu 2️⃣ Memory 제한하기 옵션 의미 -..

도커 공부하면서 컨테이터를 실행시키는데 그 컨테이너가 port 5000을 사용한다. 그런데 실행시키니 포트 5000이 이미 사용중이라는 것이다. Error response from daemon: Ports are not available: listen tcp 0.0.0.0:5000: bind: address already in use 왜..?..그래도 침착히 port를 죽이면 된다. 이런 문제쯤이야..식은 죽 먹기다 lsof -i:5000 위 명령어로 사용하고 있는 pid를 확인 후 죽이면 된다. kill [pid] 그러나 죽이고 다시 컨테이너를 실행시켜도..또..사용중이래...죽이고 또 죽이고...내가 루트계정으로 안죽여서 그런가...sudo도 사용해보고..그래도 안죽어... 다시 보니 COMMAND에..

앞 포스트에서 컨테이너를 실행시킬 때 run 명령어를 사용했는데, run은 pull, create, start 이 한번에 이뤄지는 간단한 명령어이다. 1️⃣pull : 이미지 다운로드 $ docker pull nginx 2️⃣create : 다운 받은 이미지를 컨테이너화 $ docker create --name [컨테이너명] nginx 3️⃣start : 컨테이너 실행 $ docker start [컨테이너명] ✨컨테이너 상태 확인 옵션 -a를 넣는 경우 running과 관계 없이 모든 컨테이너 출력, 옵션 사용하지 않는 경우에는 running중인 컨테이너만 출력 $ docker ps -a 4️⃣inspect : 운영 중인 컨테이너 정보 확인하기 - port, IPAddress, MacAddress,Net..

무엇을 컨테이너로 만들까? 하나를 어플리케이션이 있다고 생각한다면, 어플리케이션을 운영하기 위한 환경이 필요하다. 예를 들어 java로 만들어진 프로그램이 데이터베이스로 mysql을 사용한다면, 운영환경엔 java와 mysql이 설치 되어 있어야 할 것이다. 개발한 어플리케이션과 운영환경이 모두 들어있는 독립된 공간이 컨테이너이다. 예를 들어서 MSA환경의 polyglot 어플리케이션 운용하는 경우 쇼핑카트기능, 결제기능을 다른 환경에서 개발이 되어 있다면, 쇼핑카트기능을 하나의 컨테이너로, 결제기능을 또 하나의 컨테이너로 만든다. ✨ 컨테이너 만드는 방법 dockerfile ( 컨테이너를 구성하기 위한 명령어의 집합체 )을 통해 컨테이너를 빌드한다.명렁어들이 많기 때문에..필요한건 아래 홈페이지에서 검..

#실행 중인 도커 확인 $ docker ps 로그인 docker hub에 먼저 가입을 한 후 터미널에 아래의 명령어를 입력해주면, username과 password를 입력할 수 있다. https://hub.docker.com/ Docker Hub Container Image Library | App Containerization Build and Ship any Application Anywhere Docker Hub is the world's easiest way to create, manage, and deliver your teams' container applications. hub.docker.com $ docker login 이미지 검색 및 다운로드 nginx의 이미지가 있는지 검색해보고 다운..

원래는 virtural machine을 다운 받아서 가상머신 위에 설치하려고 했는데, 맥 m1 칩은 vm 설치가 불가능하다고 하여, mac 용 docker를 다운받았다. homebrew를 통해 다운 받고 설치를 해주었다. Docker 설치 $ brew install --cask docker ✨설치후 application에 다운로드 된 프로그램을 한번 실행 시켜줘야 터미널에서 작업할 수 있다.✨ 프로그램을 한번 실행시키지 않고 바로 docker 명령어를 쓰게 되면 아래와 같이 명령어를 찾을 수 없다고 나온다.(command not found : docker) 프로그램을 한번 시작해주고, 다시 터미널에서 명령어를 실행시키면 잘 실행 되는 것을 알 수 있다. hombrew로 다운 받지 않고 홈페이지를 통한 다..
NTP란? 패킷교환, 레이턴시 데이터 네트워크를 통해 컴퓨터 시스템 간 시간 동기화를 위한 네트워크 프로토콜 경험에 의해 깨달은 중요성 우리 회사는 구글 STT와 TTS를 사용한다. 그런데 시스템 재배포후 갑자기 TTS가 안되는 현상이 발생했다. 당일 배포한 동시에 배포한 시스템이 많고, 새로 오픈한 시스템도 있었기에 갑자기 안되는 TTS 때문에 많은 업체가 밤 11시까지 대기하는 상황이 벌어졌다. 결국 다른 업체들은 11시에 배포를 원상복귀 시키고, 우리도 원상복귀를 시켰는데 그래도 안되는 상황.. 아예 서비스 불가로 큰일 난 상황이다.. 너무너무 눈치보이고..내 잘못인거 같고🥺...신입의 나에게는 너무나...큰 시련이었다..4개월간 잘 돌아가던 시스템이 안되는 이상한 상황.. 심지어 배포작업이 없었던..
- Total
- Today
- Yesterday
- 자바스크립트
- tomcat
- 현대코테
- Kubernetes
- Spring
- centos
- Docker
- 톰캣
- 현대오토에버
- 도커
- 코딩테스트
- 자바코테
- 코테
- react
- softeer
- java
- 자바
- javascript
- 쿠버네티스
- gcp
- springboot
- 스프링
- 아파치카프카
- 전자정부프레임워크
- softeer java
- 오토에버코테
- nginx
- 리액트
- Linux
- mysql
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |