일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- ec2
- 간단
- login
- Docker
- Kafka
- 자바
- 레디스
- redash
- Redis
- 클러스터
- 로그인
- hive
- 젠킨스
- 자동
- 예제
- SpringBoot
- aws
- vue
- Zeppelin
- Mac
- spring
- config
- 머신러닝
- Jenkins
- 설정
- fastcampus
- gradle
- Cluster
- EMR
- java
- Today
- Total
목록Docker (8)
코알못
이번 시간에는 이미지 저장 관리를 위한 도커 공식 저장소 [도커 허브]를 통해 이미지 관리를 해보자! 도커 허브에 접속하여 로그인을 한뒤 Account Settings 클릭한다. 아래와 같이 클릭하여 토큰을 생성한다. 적당한 설명을 적고 테스트 이므로 모든 권한을 부여하여 생성한다. 아래와 같이 로그인 방법이 안내 되며 로그인을 위한 토큰이 생성된다. 이제 도커에 로그인 해보자! $ docker login -u [유저명] Password: Login Succeeded 정상적으로 로그인 되었다면 도커 허브에 저장소를 이용해보자! 아래와 같이 Reposiroties를 클릭후 생성 버튼을 클릭한다. 저장소명, 설명을 기입하고 공개하지 않을 예정이므로 Private를 선택한다. 그리고 create 버튼을 눌러 ..
이번 시간에는 도커 이미지 생성 및 불러오는 실습을 진행 해보자! 우선 아래 이미지를 보면서 이미지 구조부터 보자 ㅎ Nginx 버전 v1 의 이미지를 생성한다. 이미지는 레이어 아키텍쳐로 구성 되어 있으며 변경 사항이 있을 경우 Layer로 쌓인다. V1 은 A, B, C 레이어로 구성 되어 있으며 Nginx 버전 v1 에서 몇가지 설정을 변경한 뒤 버전 v2의 이미지를 생성하면 Layer A,B,C 가 그대로 있고 Layer D가 쌓인것을 볼 수 있다. Nginx 버전 v2 로 도커 컨테이너를 생성시 이미지 레이어는 Read Only로 사용하며 컨테이너 레이어는 Read/Write로 사용되는 것을 볼 수 있다. 이를 확인 해보자! 아래와 같이 명령어를 입력하여 이미지 항목을 본다. $ docker i..
로그 확인 하는 방법은 'docker logs' 명령어를 이용하면 되며 옵션을 추가로 주어 원하는 대로 로그 확인이 가능하다. 우선 옵션 없이 로그를 확인해보자! $ docker logs [container] logger=sqlstore t=2022-03-26T09:13:48.34+0000 lvl=info msg="Created default organization" logger=plugin.manager t=2022-03-26T09:13:48.38+0000 lvl=info msg="Plugin registered" pluginId=input logger=query_data t=2022-03-26T09:13:48.38+0000 lvl=info msg="Query Service initialization"..
도커 레이어 아키텍쳐는 아래와 같이 두가지 레이어로 되어있다. image layer : 이미지 레이어로 읽기전용, 컨테이너는 이미지를 읽어서 만들어짐 container layer : 읽기, 쓰기 모두 가능한 레이어로 컨테이너 삭제시 사라지는 레이어 여기서 컨테이너 레이어의 경우 컨테이너 삭제시 사라진다고 정의되어있으며 그렇게 되면 안에 있던 볼륨도 제거 될것이다. 정말로 그런지 실습을 통해 확인해보자! $ docker run -d -it ubuntu:focal bash $ docker exec -it 777 bash root@77776327a426:/# echo hello > hello.txt root@77776327a426:/# ll total 60 drwxr-xr-x 1 root root 4096 M..
포트 바인딩 하여 컨테이너 포트를 호스트의 ip 와 연결하여 서비스에 노출하는 방법을 알아 보자! 아래와 같이 명령어를 이용하여 연결할 수 있으며 host 부분은 생략 가능하다. (p 는 publish 의미) $ docker run -p [HOST IP:PORT]:[CONTAINER PORT] [CONTAINER] 우선 실습으로 익혀보자! $ docker run -d -p 3000:3000 grafana/grafana $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f2792fece957 grafana/grafana "/run.sh" 3 seconds ago Up 2 seconds 0.0.0.0:3000->3000/tcp bold_al..
엔트리 포인트와 커맨드 차이는 무엇일까? 두개의 정의는 아래와 같다. - entrypoint : 도커 컨테이너가 실행할때 고정적으로 실행 되는 스크립트 혹은 명령어 (생략가능, 생략시 커맨드 명령어가 실행됨) - command : 도커 컨테이너가 실행할때 수행할 명령어 또는 엔트리 포인트에 정의된 명령어에 대한 인자값 얼핏 보면 비슷해 보이지만 다른 개념이다. 만약 docker 시작시 test.sh 을 인자로 'test' 를 넣어서 실행 시키고 싶다면 [entrypoint]에 'test.sh' 를 넣고 [command]에 'test' 를 넣으면 된다. 실습을 진행해보자! entrypoint 로 echo 를 주고 추가 인자를 hello world 를 넣는다. 컨테이너 리스트를 보면 command 에 ech..
docker는 리눅스 컨테이서 관리 기술로 mac/window 에서 Native(원주민)로 사용할 수 없다. 그러나 도커의 경우 쓰임새가 많아지다 보니 mac, window 에서도 사용 가능하도록 'docker for desktop' 이 만들어졌으며 linux 에서 설치해야하는 docker, docker-compose 모두 포함되어 있다. (단, 도커의 기능을 완전하게 사용하려면 리눅스에서 사용하는것이 바람직 하다.) 데스크탑 GUI 도 포함되어 있어 CLI에 익숙하지 않은 유저도 편리하게 사용 가능하다. 저자의 경우 mac 이기에 아래와 같이 homebrew를 이용하여 설치를 진행한다. $ brew install --cask docker cask 를 넣는 이유는 GUI(화면이 있는 설치파일) 어플리케이..
우선 도커가 무엇인가? 알아보기전 우리는 VMWare를 사용하여 가상 머신을 띄워서 또다른 운영체제를 띄운 적이 있을것이다. 이는 virtualized deployment (가상화 배포)라고 하여 하나의 컴퓨터에 hypervisor(하나의 컴퓨터에 다수의 운영체제를 띄우는 소프트웨어)를 활용하여 GestOS(하나의 운영체제 위에 띄운 또 다른 운영체제)를 띄운다. hypervisor를 통해 띄운 다수의 GestOS는 자원(메모리, cpu, 디스크)이 완벽하게 분리된다. 단점은 다수의 os 설치를 위한 자원이 사용되어 기존 호스트의 자원을 모두 사용할 수 없다는 점과, 해당 구조에서 app을 실행시 os 에서 바로 app을 실행시키는 것 보다 성능이 나오지 않는다는 점이다. 이를 개선하기위해 docker ..