티스토리 뷰
- 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 수정
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
- 도커 명령어 정리 (테스트)
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 데스크탑
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