혹여 이글을 보게 된다면! -> 이거 뻘짖임 하지 마셈! did 쓰면됨 이거 할때는 did를 생각 못함.
!chrrot 환경을 root로 접근할것!
1. chroot 환경으로 이동
먼저 chroot 환경으로 이동합니다. chroot 환경이 /home/woody
에 있다고 가정,
이동하지 말것!,
sudo chroot /home/woody
2. 필요한 디렉토리 마운트
chroot 환경 내에서 Docker를 실행하려면 몇 가지 중요한 파일 시스템을 마운트해야 함,
단 확인결과 도커는 메인 시스템과 완전 분리는 어려운것으로 확인됨
완전 분리를 위해서는 분리된 환경에 시스템파일을 복제하고 아래 명령을 통해 재마운트하는 과정이 필요하지만
mount -t proc /proc /proc
mount --rbind /sys /sys
mount --rbind /dev /dev
mount --rbind /run /run
해당 명령을 사용하면 컨테이너를 실행하는 과정에서Attempting next endpoint for pull after error: failed to register layer: remount /, flags: 0x84000: invalid argument
위의 에러가 뜨고 현재는 원인을 알수없음
따라서 도커가 사용하는 시스템 파일은 아래 명령을 통해 메인의 시스템 파일을 바인딩하여 사용 즉 메인 시스템에 설치된 도커 와 프로세스 를 공유함.
!이 과정은 메인 시스템에서 sudo 권한으로 이루어져야함!(재부팅시 리마운트)
sudo mount --rbind /sys /home/woody/sys
sudo mount --rbind /proc /home/woody/proc
sudo mount --rbind /dev /home/woody/dev
sudo mount --rbind /run /home/woody/run
sudo mount --rbind /sys/fs/cgroup /media/hongyongjae/Database/cagongjoke/sys/fs/cgroup
3. Docker 설치 !ubuntu22.04 기준
Docker 설치 준비
apt-get update
//기본 gnupg2 는 사용되지 않음, 대체 패키지 gnupg를 사용
apt-get install -y apt ca-certificates curl gnupg software-properties-common
Docker GPG 키 추가
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
Docker 저장소 추가
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Docker 설치
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
Docker 데몬 실행
dockerd &
5. Docker 사용
예시로 hello-world 이미지를 실행.
docker run hello-world
Docker Compose 설치
최신 docker-compose
를 설치
# 최신 docker-compose 버전 확인
DOCKER_COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep -Po '"tag_name": "\K.*\d')
# docker-compose 바이너리 다운로드 및 설치
sudo curl -L "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 실행 권한 부여
sudo chmod +x /usr/local/bin/docker-compose
# 심볼릭 링크 생성 (필요한 경우)
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# 설치 확인
docker-compose --version
3. Docker Compose 사용 예제
예제 컴포즈 파일
version: '3'
services:
web:
image: nginx
ports:
- "8080:80"
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: example
이 파일을 현재 디렉토리에 저장한 후, 다음 명령어를 실행하여 서비스를 시작할 수 있습니다.
docker-compose up//컨테이너 실행
docker-compose up -d // 백그라운드로 컨테이너 실행
docker-compose -f docker-compose-dev.yaml up -d //컴포즈 파일 지정 백그라운드 실행
docker compose up --build -d // 빌드후 백그라운드 실행
'Server' 카테고리의 다른 글
ubuntu ssh key-pair 생성 및 적용 (6) | 2024.07.23 |
---|---|
Server_Chroot_nginx start 실패시 대응법 (1) | 2024.07.08 |
Server_chroot환경_nginx_설치 및 세팅 (0) | 2024.07.08 |
Server_chroot환경_apt_get(온라인 패키지 매니저) 에러시 대응법 (0) | 2024.07.08 |
Server_chroot환경_사용자분리 (0) | 2024.07.08 |