docker

자주쓰는 명령어 $ docker login -- registry 로그인 $ docker search nginx -- 검색 $ docker pull nginx -- pull $ docker run -p 80:80 --name web nginx -- 실행 $ docker ps -- 실행중인 docker 프로세스 $ docker ps -a -- 생성/실행/중지 중인 docker 프로세스 $ docker stop web -- web 이란 컨테이너 중지 $ docker rm web -- web 이란 컨테이너를 삭제 (running 중인 컨테이너는 삭제가 불가) $ docker rm -f web -- web 실행중이어도 강제로 중지하고 삭제 $ docker rmi nginx -- nginx 이미지 삭제 $ dock..
2021.06.20 - [프로그래밍 노트/인프라] - [kafka] Docker 사용하여 카프카 실행하기 [kafka] Docker 사용하여 카프카 실행하기 실행에 앞서 PC에 docker가 설치되어 있어야 한다. 1. kafka-docker repository clone $ git clone https://github.com/wurstmeister/kafka-docker 2. docker-compose-single-borker.yml 수정 해당 compose 파일을.. cornswrold.tistory.com 기존포스팅에서는 zookeeper 1대, kafka 1대로 구성된 카프카 실행환경을 구성하였었다. kafka를 학습하다보니, 로컬에서 클러스터로 구성된 환경이 필요했는데 다행히 docker-com..
실행에 앞서 PC에 docker가 설치되어 있어야 한다. 1. kafka-docker repository clone $ git clone https://github.com/wurstmeister/kafka-docker 2. docker-compose-single-borker.yml 수정 해당 compose 파일을 사용하면 zookeeper-1대, broker(kafka)-1대 를 실행시킬 수 있다. multi broker는 나중에 기회가 되면 셋팅 해보자. 로컬에서 실행하므로 KAFKA_ADVERTISED_HOST_NAME을 127.0.0.1로 수정한다. version: '2' services: zookeeper: image: wurstmeister/zookeeper ports: - "2181:2181"..
2021.02.05 - [프로그래밍 노트/도커] - 스웜(swarm)을 이용한 도커 컨테이너 배포_1 2021.03.27 - [프로그래밍 노트/도커] - 스웜(swarm)을 이용한 도커 컨테이너 배포_2 앞에서 포스팅한 스웜클러스터는 아직 상용화할수 없다. 왜냐하면 외부에서 서비스(echo_nginx)에 접근을 할 수 없기 때문인데 이 문제를 해결해보자. 마지막에 설정한 visualizer는 스웜 클러스터 외부에서 접근(localhost:9000)하다. 이것은 contraints설정에서 visualizer 컨테이너를 manager에 배치되도록했기 때문인데, 호스트로부터 manager까지 여러 단계에 걸친 포트 포워딩을 사용했기 때문에 문제가되지 않는다. docker-compose.yml version: ..
애플리케이션 내 단일 컨테이너의 적정 비중 실제 운영에서는 애플리케이션을 컨테이너 안에 어떻게 배치하는지가 매우 중요하다. 컨테이너 하나가 맡을 수 있는 적정 수준의 책임은 어느 정도일까? 세세하게 역할을 나누다가 시스템 전체의 복잡도가 올라가지는 않을까? 단일 컨테이너의시스템 내 비중은 어떻게 결정해야하는지 알아보자. 컨테이너 1개 = 프로세스 1개? 애플리케이션 + 인프라 = 도커 컨테이너 결과부터 말하자면, 컨테이너 1개 = 프로세스 1개 원칙은 괜찮게 생각될 수 있으나 지나치게 복잡해질수도 있다. 예를 살펴보자 정기적으로 작업을 실행하는 애플리케이션 정기적으로 어떤 작업을 실행하는 컨테이너가 있다고 가정해보자. 스케줄러 + 작업이 합쳐진 애플리케이션을 만든다면 컨테이너 1개 = 프로세스 1개 원칙..
젠킨스를 Master/Slave로 보통 구성한다고 한다. (사실 실무에서는 사용해본적이 없지만, 많은 블로그나 책에서 이렇게 사용한다고 한다.) 도커 컴포즈를 연습해볼겸 젠킨스를 Master/Slave로 구축을 해보자, Master : 관리 기능 및 작업 실행 지시 Slave : 실제 작업 진행 Master 젠킨스 컨테이너 실행하기 1.docker-compose.yml 작성 version: "3" services: master: container_name: master image: jenkins/jenkins:lts ports: - 9900:8080 volumes: - ./master_jenkins_home:/var/jenkins_home volumes 항목은 호스트와 컨테이너 사이에 파일을 공유할 수 ..
도커 컨테이너 다루기 도커 컨테이너는 이미지를 바탕으로 만듭니다. 따라서 우리는 도커 이미지, 도커 컨테이너를 다루는 법에 익숙해져야 합니다. 자 그럼 도커 컨테이너에 대해 알아봅시다. 도커 컨테이너 생애주기 실행 중, 정지, 파기의 3가지 상태를 갖습니다. 실행 중 상태 docker container run 명령의 인자로 지정된 도커 이미지를 기반으로 컨테이너가 생성되면 이 이미지를 생성했던 Dockerfile에 포함된 CMD 및 ENTRYPOINT 인스트럭션에 정의된 애플리케이션이 실행됩니다. 이 애플리케이션이 실행 중인 상태가 컨테이너의 실행 중 상태가 됩니다.(실행이 끝나면 정지 상태가 됨) 정지 상태 실행 중 상태에 있는 컨테이너를 사용자가 명시적으로 정지하거나 컨테이너에서 실행된 애플리케이션이..
도커 이미지 다루기 도커 사용법은 크게 이미지를 대상으로 하는 것과 컨테이너를 대상으로 하는 것으로 나뉩니다. 따라서 우리는 도커 이미지를 다루는 법과 도커 컨테이너를 다루는 법에 익숙해져야 합니다. 그 전에 도커 이미지가 구체적으로 무엇인지 알아보겠습니다. 한 마디로 말하면 도커 이미지는 도커 컨테이너를 만들기 위한 템플릿 입니다. 도커 이미지는 우분투 같은 운영 체제로 구성된 파일 시스템은 물론, 컨테이너 위에서 실행하기 위한 애플리케이션이나 그 의존 라이브러리, 도구에 어떤 프로세스를 실행할지 등의 실행 환경의 설정 정보까지 포함하는 아카이브 docker image build - 이미지 빌드 docker image build는 Dockerfile에 기술된 구성을 따라 도커 이미지를 생성하는 명령입니..
들어가며 몇 달전 MSA가 핫한 기술이라고 하여, 무작정 관련 서적을 사서 읽던 중.. 외계어 같은 도커 컴포즈? 컨테이너? 만나 한계에 부딪혀서 도커 공부를 시작하게되었습니다ㅎㅎ 아직 도린이지만, 공부한 내용을 공유하고자 합니다~ => 도커 컴포즈, 스웜, 쿠버네티스 같은 고급? 내용은 아직 정리를 못하였고 기초적인 내용(이미지, 컨테이너 다루기)이 포함되어있습니다. 컨테이너로 애플리케이션 실행하기 우선 로컬 PC에 도커가 설치되었다고 가정하고 시작하겠습니다. 도커는 https://hub.docker.com/search?q=&type=edition&offering=community 에서 받을 수 있습니다! 컨테이너로 애플리케이션을 실행하는 방법을 배우기 전에 도커 이미지와 도커 컨테이너의 관계를 먼저 ..
퍼시스턴스 데이터를 다루는 방법 도커 컨테이너가 실행 중에 작성 혹은 수정된 파일은 호스트 쪽 파일 시스템에 마운트하지 않으면 컨테이너가 파기될 때 호스트에서 함께 삭제된다. 즉, 상태를 갖는 애플리케이션을 운영하려면 새로운 버전의 컨테이너가 배포돼도 이전 버전의 컨테이너에서 사용하던 파일 및 디렉터리를 그대로 이어받아 사용할 수 있어야 한다. 이런 경우에 데이터 볼륨(data volumne) 이 사용된다. 데이터 볼륨 데이터 볼륨은 도커 컨테이너 안의 디렉터리를 디스크에 퍼시스턴스 데이터로 남기기 위한 메커니즘이다. (호스트와 컨테이너 사이의 디렉터리 공유 및 재사용 기능을 제공) 데이터 볼륨을 사용하는 방법은 아래와 같다. $ docker container run [options] -v 호스트_디렉터..
깡냉쓰
'docker' 태그의 글 목록