명령어 설명 docker --version 도커 설치 확인 및 버전 출력 docker container list 실행 중인 컨테이너 목록 출력 docker ps 실행 중이거나 중지된 모든 컨테이너 목록 표시 docker image list 로컬 이미지 목록을 표시 docker build -t --file 현재 디렉토리를 기준으로 docker-file 경로에 따라 관련 파일로 이미지를 생성한다. -t 인수는 이미지에 태그를 지정할 수 있다. docker run -d -p : 이미지로부터 컨테이너 인스턴스를 생성한다. 이미지가 로컬에 없다면, 레지스트리 URL을 태그로 지정한 경우 원격 레지스트리에서 가져온다. 분리 모드는 컨테이너를 실행하는 -d 인수를 사용해 컨테이너가 터미널 창에 제한되지 않도록 하지만..
✔️ 이미지 레이어 httpd:latest의 레이어를 확인해보자. vagrant@docker ~ docker image inspect httpd --format '{{ .RootFS.Layers }}' [sha256:9c1b6dd6c1e6be9fdd2b1987783824670d3b0dd7ae8ad6f57dc3cea5739ac71e sha256:1d1a2486e901871ad1257512d588eebb30ae0605d8353abb6635e2d313b2187c sha256:ec02eb7f3cf4dd78bc518d3a8ccf57f57336ceacb9638303891787ff2ec2e96f sha256:67bb571b5bd2b65cbdf2c93c6f9dc8e89414055dd7444df617b234669..
✔️ Docker Volume 개요 이미지는 하나 이상의 layer로 구성되어 있다. 이미지의 레이어는 어떻게 확인하는가 ? 1) 이미지를 받을 때(pull) 확인할 수 있다. 2) docker inspect 명령 실행 후 layer에서 확인할 수 있다. "RootFS": { "Type": "layers", "Layers": [ "sha256:e59fc94956120a6c7629f085027578e6357b48061d45714107e79f04a81a6f0c" ] }, 이미지는 immutable이므로 절대 바뀌지 않는다. 이미지로 컨테이너를 만들게 되면 기존 이미지의 내용이 변하지 않고 컨테이너로 생성된다. 즉 이미지는 read-only 상태이며 쓰기 작업을 할 수 없다. 만약 그 위에 read/write..
✔️ Docker(도커) 설치 ✔️ Ubuntu Virtual Machine 구축 Vagrant를 이용해 Ubuntu VM을 구축하고 그 위에 Docker를 설치할 것이다. Vagrant.configure("2") do |config| # Define VM config.vm.define "docker" do |centos| centos.vm.box = "ubuntu/focal64" centos.vm.hostname = "docker" centos.vm.network "private_network", ip: "192.168.100.100" centos.vm.provider "virtualbox" do |vb| vb.name = "docker" vb.cpus = 2 vb.memory = 4096 end en..
✔️ Docker(도커)란 ? 리눅스 컨테이너를 기반으로 하여 특정한 서비스를 패키징하고 배포하는데 유용한 오픈 플랫폼이다. 인프라에서 어플리케이션을 분리하고 컨테이너로 추상화시켜 SW를 빠르게 제공할 수 있다. 하나의 호스트 OS 안에서 여러 컨테이너의 라이프 사이클을 관리하고 어플리케이션을 오케스트레이트된 서비스로 배포할 수 있다. ✔️ Docker의 구성 요소 컨테이너를 만들기 위해서 필요한 3가지 요소는 다음과 같다. ① Dockerfile 컨테이너를 만들기 위한 설명서 (요리로 치면 레시피) Copy files - 어플리케이션을 구동하기위해 꼭 필요한 파일들은 무엇이 있는지 Install dependency - 어떤 프레임워크나 라이브러리를 사용해야 하는지 Set environment varia..
✔️ 컨테이너란 ? 컨테이너란 호스트 OS 상에 논리적인 구획을 만들고 어플리케이션을 작동시키기 위해 필요한 라이브러리나 어플리케이션 등을 하나로 모아 마치 별도의 서버인 것처럼 사용할 수 있게 만든 것이다. 개별 SW의 실행 환경을 독립적으로 운용할 수 있도록 다른 실행 환경과의 간섭을 막고 실행의 독립성을 확보해주는 운영체제 수준의 격리 기술을 말한다. 호스트 OS의 리소스를 논리적으로 분리시키고, 여러개의 컨테이너가 공유하며 사용한다. 컨테이너는 오버헤드가 적기 때문에 가볍고 고속으로 작동하는 것이 특징이다. ✔️ VM vs 컨테이너 VM (Virtual Machine) 공통적으로 하나의 서버가 있고 한 서버에는 HostOS (맥, 리눅스, 윈도우)가 올라간다. VM의 경우 호스트OS에 대해 VM을..