티스토리 뷰

 

vagrant.pdf
0.19MB

- vargant 설치

vargant 에서 boxs 는  이미지를 의미

vargant 설치 후 

vagrant version

vagrant box list

https://portal.cloud.hashicorp.com/vagrant/discover/generic/ubuntu2204

vagrant box add generic/ubuntu2204

virtualbox 선택

 

How to use this box with Vagrant

Step 1

Option 1: Create a Vagrantfile and initiate the box

vagrant init generic/ubuntu2204 --box-version 4.3.12

vagrantfile 수정 

   config.vm.network "private_network", ip: "192.168.25.10"
   config.vm.provider "virtualbox" do |vb|
  #   # Display the VirtualBox GUI when booting the machine
  #   vb.gui = true
  #
  #   # Customize the amount of memory on the VM:
     vb.memory = "8096"
     vb.cpus = "2"
   end
 

 

Step 2

Bring up your virtual machine

vagrant up

NIC 및 BOX 만들어짐

vagrant ssh

 

vagrant 를 이용한 vm 및 docker 설치

* Virtualbox 가 설치되어 있어야 합니다.

Vagrant image login id 및 암호.
id: vagrant
password: vagrant

vagrant 계정이 암호인증 없는 sudo 권한 갖고 있습니다. 

vagrant 기본명령어
- vagrant 명령은 cmd 나 powershell 에서 사용합니다.

vagrant 설정파일명은 Vagrantfile 입니다.
vagrant 명령은 vagrantfile 이 있는 디렉토리에서 실행을 해야 합니다.
* 현재 디렉토리에 Vagrantfile 이 없으면 부모디렉토리를 참조합니다.

-------------------------------------------------------------------
vagrant --help  ; 도움말 출력

vagrant init => vagrant 실행을 위한 Vagrantfile 생성
vagrant up : Vagrantfile 내용을 읽고 실행
vagrant status : vagrant 가상머신 상태 확인
vagrant halt : vagrant 가상머신 종료
vagrant destory : 설치된 vagrant 가상머신 삭제
vagrant provision : Vagrantfile 에서 provision 항목 실행
vagrant ssh : vagrant 가상머신으로 ssh 접속

--------------------------------------------------------------------
* 설치된 Vagrant vm image 삭제

Vagrantfile 이 있는 디렉토리안에서
vagrant halt  ; vagrant 가상머신 종료
vagrant status ; vagrant vm 상태 확인
vagrant destroy ; vagrant vm image 삭제
rm .vagrant  ; vm 생성될때 만들어진 .vagrant 디렉토리 삭제

 

 

- 도커 설치 (우분투 ubuntu 22.04)

https://docs.docker.com/engine/install/ubuntu/

 

Ubuntu

Jumpstart your client-side server applications with Docker Engine on Ubuntu. This guide details prerequisites and multiple methods to install Docker Engine on Ubuntu.

docs.docker.com

 

sudo apt-get update
sudo apt-get install ca-certificates curl     <=== 인증서 설치

sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc  <=== 키 받기(공개키로 검증)
sudo chmod a+r /etc/apt/keyrings/docker.asc

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update

docker-ce는 ? comutnity version
docker-ee는 ? enterprise version

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

sudo docker run hello-world

 

 

- 도커 명령어 정리 (테스트)

docker_book_update.pdf
1.61MB

 

container 는 커널이 없음, 운영체제 가상화

 for i in $(seq 1 100); do sudo docker run -d --name apache${i} httpd; done

apache container 100개 생성

sudo docker run -d nginx 명령어 입력 시 docker 데몬에서 받음( dockerd)

containerd ===> container runtime(실행환경) (high level) ===> runc (잠깐 실행 됐다가 사라짐)
===> 이미지를 받는 데몬( 종료 시 이미지 pull 불가)

모든 도커 중지 및 삭제
 sudo docker stop $(sudo docker ps -q)
 sudo docker rm $(sudo docker ps -qa)
 sudo docker ps -aq <=== 확인 명령어

종속 관계 확인 (의존성)

sudo systemctl list-dependencies docker

containerd 중지 후 docker 재시작 하면 의존성으로 인한 containerd 도 시작됨

sudo usermod -aG docker vagrant <=== vagrant 계정이 docker 으로 포함 (sudo 명령어 불필요하게 됨)

docker ps  -a <=== 도커 컨테이너 리스트 전부 확인

/var/lib/docker <==== 모든 컨테이너 정보들 저장 위치

docker login [계정명} <=== docker hub 계정 로그인 
docker pull ubuntu:24.04 <=== 이미지 다운 (docker images 로 확인)
docker run -dit --name ubuntu ubuntu:24.04 <=== 컨테이너 실행 (docker ps -a 로 확인)
(옵션 -i 가 없으면 바로 죽음)
docker exec -it ubuntu  /bin/bash  <=== bash 로 컨테이너 접속

docker rm $(docker ps --all -q -f status=exited)

죽은 컨테이너 한번에 삭제 

docker rm $(docker ps -qa) <=== 모든 컨테이너 삭제


alias 설정 (컨테이너 전체 disable 후 삭제)

vi .bashrc 에서 
 alias all_container_rm='docker stop $(docker ps -q) ; docker rm $(docker ps -qa)' 
추가 후
source .bashrc

도커 run 은 create 와 start 를 합친 것 

docker container inspect apache <== 컨테이너 속성 확인

docker run -d -p 1024:80 --name apache2 httpd:latest <=== 1024 포트로 포트포워딩(1024 미입력시 30000 이상 포트 랜덤부여)

 

docker run -d --name mydb2 -e MYSQL_ROOT_PASSWORD=mypass mysql:latest 
(db 올릴 때 패스워드를 정하고 run 해야지 컨테이너가 실행된다)

참고 : https://hub.docker.com/_/mysql

docker run -d --name mysql_db -v /var/dbstorage:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=mypass mysql
(-v 로컬서버디렉토리:컨테이너디렉토리 를 마운트)

 docker run -d --name newapache2 -p 1024:80 -v $(pwd)/webdata:/usr/local/apache2/htdocs httpd:latest
(로컬서버IP:1024 로 접속 시 httpd 의 newapache2 의 80 포트로 접속 , $(pwd)/webdata에서 /usr/local/apache2/htdocs 마운트)

볼륨 생성
docker volume create sample <== 기본 경로 /var/lib/docker/volumes

docker run -d --name newapache   -p :80 -v sample:/usr/local/apache2/htdocs httpd
(볼륨만든 것을 마운트,  newapache  에서 index.html 보임)

 

 

- docker 데스크탑

docker_desktop.pdf
0.39MB

 

https://docs.docker.com/desktop/setup/install/windows-install/

 

Windows

Get started with Docker for Windows. This guide covers system requirements, where to download, and instructions on how to install and update.

docs.docker.com

 

댓글