1. old 버전
-대상이 명확하지 않음
ex) docker ps
2. new 버전
- docker <대상> <커맨드> <옵션>
ex) docker container ls -a
docker image ls
docker network ls 등등
- docker --help
혹은
- docker <대상> --help로 탐구할수있다
1. old 버전
-대상이 명확하지 않음
ex) docker ps
2. new 버전
- docker <대상> <커맨드> <옵션>
ex) docker container ls -a
docker image ls
docker network ls 등등
- docker --help
혹은
- docker <대상> --help로 탐구할수있다
- 이상했다. 오늘 메모리 32G 장착해서 총 메모리 40G니까 분명 샥샥 돌아가야되는데 여전히 도커만띄우면 버버벅 대면서 돌아가지가 않는거다...
- 나는 wsl을 이용해서 도커&쿠버네티스 띄워서 사용하고있었는데 알고보니 이 wsl에 memory점유 사용설정이 있었더라. memory=8gb로 한계치 재설정(원래는 2gb였다 그래서 속도 이따위였구나..)셧다운한뒤 (자동으로 재시작된다) 다시시도..
- 와!! 설정 바꾸고 나니까 디스크 사용량이 10퍼 내외로 줄었다 미친 ㅋㅋㅋ
- 더불어 wsl명령어도 엄청 빨르게 잘먹는다.. 메모리 최고네;.. 다다익램은 과학이다~
- 12G까지 한계치를 늘렸고, 현재 메모리 사용량 15G이다.. 이거 진짜 메모리 안늘렸으면 어쩔뻔했냐.. 이래서 macOS에서도 버벅댔구나. 얘는 총 메모리16G밖에 안댐.
- previleged 모드
: MYSQL 실행하는데 디렉토리 못만든다고 에러떠서 넣고 실행 (도커의 권한문제인듯)
- 도커 컨테이너를 구동시키는 호스트의 ip : inspect키워드로 확인
- 도커를 돌리는호스트의 포트번호 열려있으면 해당 포트 충돌나니까 안쓰는 포트로 포트포워딩 하기
- my.cnf설정하기
- 여러 컨테이너를 한꺼번에 띄울수있다.
- 장점: develop할때, config바꾸고 서비스 하나하나 변경할 필요없이 docker-compose만 띄우면 되니까 짱 편하다.
- private network 자동으로 만들어준다. 외부와 격리되므로 안전!
- 컨테이너를 서비스 별로 분리
- 버전, 서비스, port , depends_on 등의 키워드를 명시한다
<도커 컨테이너끼리 커뮤니케이션 하는 방법.>
- 특징
1) private ip를 부여받는다
2) embeded dns
1. bridge
- 디폴트
- 명시하지 않을경우 docker network create하면 브릿지로 만들어진다.
- 도커 컨테이너끼리 ip를 할당받으며 이 ip로 소통한다. host는 모름.
2. host
- 호스트와 소통가능
3. none
- 다른 도커 컨테이너들과 커뮤니케이션 할 수 없다.
--
특이사항!!
- 무지무지 짱인거-> 도커 컨테이너 명을 그대로 hostname으로 사용할 수 있다
- 도커 짱이다.. 이제 vm 쓰지말구. 도커파일 하나 딱 작성해서. RUN커맨드 명시하구 끝일듯... 파일두 걍 마운트해서 공유하면되고.. 귀찮게 scp안해도 되구..
- 실제 프로덕션에서 도커 쓰는거는 고려해야 할거같은데 (넘 경량화라는 게 장점이자 단점인듯. 프로세스 죽이면 다 날라가는 것두 있으니..) 개발환경에서는 넘넘 활용가능성이 좋아보인다.
<도커 컨테이너끼리 파일을 공유하는 방법.>
- 컨테이너끼리 target과 source를 정의하여 파일을 공유한다!!
1. volume
- 더 권장되는 방식이라고 함
- 호스트와 별개로 논리적인 공간을 부여받는다
- 마운트 type설정하지 않을 시 디폴트.
- 호스트와 독립적으로. 컨테이너들끼리 파일공유하고싶을때.
2. bind
- 호스트의 파일시스템에 묶인다
- 컨테이너의 위치를 변경하는 경우 영향을 받게됨
- 해당 위치에 파일쓰면 컨테이너 바깥으로 빠져나와도. 마운트 된 그위치- 에 호스트에도 파일이 생겨있다! 신기~~
- 실시간으로 호스트의 파일내용 공유하고 싶을때 유용(git 소스 코드 실시간으로 반영한다던지)
3. tmpfs
- volume과 동일하나 컨테이너stop할경우 해당 파일들 날라가게 된다
- 잠시동안만 사용하는 보안 파일들에적절
1. 도커란 : 격리된 환경에서 어플리케이션 실행
2. 장점: vm 보다 훨씬 가볍다. 리소스를 많이 안잡아먹음 - develop환경에서 쓰기 좋다 . 내 로컬에서는 되는디요? -난 안된다고요~ => 이런 상황 줄어들것임 ㅎ
3. 용어 :
1) image : 재료
2) container : 실제로 실행중인 이미지
3) dockerfile: 명령어들을 모아놓은 문서
4) docker hub: 이미지들 모아놓는 저장소 repository
4. 도커 파일을 손수 작성하여 -> 이미지를 만들고 ->그 이미지로부터 컨테이너를 생성한다.
5. 도커파일에는 uppercase로 되어있는 키워드들이 존재함
- base이미지를 다운받고, 어느 디렉토리에서 실행할지 명시하고, 어떤 명령어를 실행할지를 명시한다
6. docker run 명령어: 이미지를 만들고, 실행하는 것 한꺼번에 편하게 할수있다. 다양한 옵션이있다
- detach 모드 실행
- port 포워딩
- name옵션
등등
7. 한번 만든 컨테이너 삭제하여도image란에 캐시되기때문에 훨씬 빠르게 또 컨테이너 만들 수 있다.
8. 이미지 자체는 프로세스가 아니므로 cpu자원 잡아먹지 않는다 개꿀~ 그러나 용량은 차지하므로 필요없으면 삭제
9. docker exec -it
interactive 로 실행한다
빠져나올때는 ctl P ctl Q
---
dockerfile keyword
- FROM : 베이스 이미지 명시
- RUN : 실행할 이미지 명시
- CMD : 실행할 커맨드 명시
- WORKDIR : 컨테이너가 실행되는 위치
- COPY : 파일들을 해당 컨테이너로 복사하여라
- EXPOSE : 포트번호를 명시적으로 알려줌
1. 하드디스크를 붙인다. 2. fdisk -l로 하드디스크를 확인한다. - interactiive한 커맨드모드 사용하여 (m) 붙인 하드디스크의 파티셔닝을 한다. - 마지막에 w를 해야 실제로 반영이 된다. 3. mkfs를 하여 어떤 파일시스...