본문 바로가기

카테고리 없음

[Docker] 전반적인 내용 간단 요약 및 팁

개요

사내 프로젝트에서 활용한 도커 관련 내용 정리 및 요약 포스트

 

도커 설치

sudo apt-get update
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

도커 sudo 키워드 없이 사용하기

sudo usermod -aG docker 로그인사용자

 

GPU(AI 모델 활용 시)를 위한 nvidia-docker 설치

distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
   && curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \
   && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

curl -s -L https://nvidia.github.io/nvidia-container-runtime/experimental/$distribution/nvidia-container-runtime.list | sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list

sudo apt-get update

sudo apt-get install -y nvidia-docker2

sudo systemctl restart docker

sudo docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi 

 

도커 컴포즈 설치

sudo apt update
sudo apt upgrade
sudo apt-get install curl
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose


//아래는 위에서 문제 시 수행
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
(위에서  에러시 sudo apt-get install docker-compose)

 

 

도커 빌드, 실행, 푸쉬, 네트워크

docker build --tag 유저명/컨테이너태그 .
// docker build --tag user/test-container:0.1 .


docker run --network 네트워크명 --name 별칭 -p 호스트포트:컨테이너포트 이미지명(컨테이너명)
// -- docker run --network t_network --name t_server -p 5000:3000 user/test-container:0.1
// --network t_network:   컨테이너는 t_network에 연결network에 연결
// --name t_server:       t_server라는 별명 사용
// -p 5000:3000:          호스트에서 들어오는 5000번 포트는 모두 3000번으로 포워딩
// --gpus all:            NVIDIA-DOCKER GPU 사용


sudo docker push 이미지명
//sudo docker push user/test-container:0.1

 

 

기타 명령어

docker inspect 컨테이너ID  //해당 컨테이너 정보, ip 등...

docker exec -it 컨테이너ID bash //해당 컨테이너 환경 접속

 

기타 참고

MySQL 커스터마이징 컨테이너

FROM mysql

ENV MYSQL_DATABASE DB_NAME
ENV MYSQL_ROOT_PASSWORD 1234

COPY . /docker-entrypoint-initdb.d/
위 설정 없이 바로 생성하기
docker run -d -p 3360:3306 -e MYSQL_ROOT_PASSWORD=1234 -e MYSQL_DATABASE=stop --name mysql --net app-tier mysql

 

같은 디렉토리 레벨에 CreateTable.sql 생성하여 생성할 테이블 sql문 작성. 기본 insert 문도 작성 가능

create table test( ...

insert into student(s_number,name) value('1234','Jason');
 

Customize your MySQL Database in Docker

Creating Docker images and using bind mounts to customize your MySQL database

betterprogramming.pub