[Docker] 도커 사용법
* 다운로드 설치
https://www.docker.com/get-started
* 매뉴얼
https://docs.docker.com/get-started/
http://pyrasis.com/Docker/Docker-HOWTO
//----------------------
용어 : 이미지, 컨테이너 차이
이미지 : 가상화 설정된 파일 , build로 생성
- docker images
컨테이너 : 이미지를 실행한 상태, run으로 생성
- 한 이미지에 여러 컨테이너 가능
- docker ps -a
-a 옵션은 중지된 것도 보여줌
//----------------------------
- 도커 이미지 검색
docker search ubuntu
- 이미지 다운로드
docker pull ubuntu:latest
- 72M
- 이미지 리스트
docker images
//-------------------------------
- 컨테이너 생성(이미지 실행)
docker run -i -t --name 컨테이너이름 이미지이름
docker run -i -t --name hello ubuntu /bin/bash
docker run --publish 8000:8080 --detach --name bb bulletinboard:1.0
--detach : 백그라운드 실행
docker run -d -p 80:80 docker/getting-started
//------------------------
- 컨테이너를 이미지로 만들기
- dockerhub에 올려지면 pull로 다운로드(공유) 가능
docker commit 컨테이너이름(or 컨테이너ID) 이미지이름
docker commit ubuntu1 이미지
docker commit ubuntu1 도커계정/ubuntu1:버전
//----------------------------
* 컨테이너 제어
- 컨테이너 시작
docker start 컨테이너이름
docker start -a 컨테이너이름 // -a = attach, 시작하면서 동시에 attach
- 컨테이너 접속
docker attach 컨테이너이름
- 컨테이너 내부 명령 실행
docker exec hello echo "Hello World"
- 컨테이너 재시작
docker restart 컨테이너이름
- 컨테이너 중지
docker stop 컨테이너이름
- 컨테이너 삭제
docker rm 컨테이너이름
- 이미지 삭제
docker rmi <이미지 이름>:<태그>
//------------------------
- 모든 컨테이너 정지(실행 중지, 종료)
docker stop $(docker ps -aq)
- 모든 컨테이너 삭제
docker rm $(docker ps -aq)
- 모든 이미지 삭제
docker rmi $(docker images -q)
//-----------------------------------------------------------------------------
< wsl 에서 docker 사용하기 (wsl docker) >
https://learn.microsoft.com/en-us/windows/wsl/tutorials/wsl-containers
//-------------------------------------
Docker Desktop for Windows 설치
https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe
* Docker Desktop 설정
General 탭 -> Use WSL 2 based engine : 체크
Resource 탭 -> WSL intergration : 사용할 리눅스 배포판을 선택해서 켠다
- wsl 에서서 docker 버전 확인
$ docker --version
//-----------------------------------------------------------------------------
< CUDA Docker, NVIDIA Container Toolkit 설치 방법 (wsl nvidia docker, wsl cuda docker) >
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
* NVIDIA Container Toolkit 설치
$ curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
$ sudo apt-get update
$ sudo apt-get install -y nvidia-container-toolkit
//-------------------------------------
* 설정
$ nvidia-ctk runtime configure --runtime=docker --config=$HOME/.config/docker/daemon.json
도커 재시작 (윈도우 Docker Desktop에서 재시작)
//-------------------------------------
- Running a Sample
$ docker run -it --rm --gpus all ubuntu nvidia-smi
--runtime=nvidia 옵션은 사용하지 않는다.
다음 에러 방지 - docker: Error response from daemon: unknown or invalid runtime name: nvidia.
//-------------------------------------
- 주의! OLD DEPRECATION archived
https://github.com/NVIDIA/nvidia-docker
//-----------------------------------------------------------------------------
docker 사용예 laradock
//---------------------------
- 다운로드
git clone https://github.com/Laradock/laradock.git
- 설정파일 생성
cp env-example .env
- 컨테이너 실행
docker-compose up -d nginx mysql phpmyadmin redis workspace
- .env 파일 설정
DB_HOST=mysql
REDIS_HOST=redis
QUEUE_HOST=beanstalkd
- 접속
http://localhost.
'Code' 카테고리의 다른 글
7z 단일 실행 파일 명령행 사용 방법 (0) | 2021.01.26 |
---|---|
2020년 프로그래밍 언어 인기 순위 (0) | 2020.12.11 |
[윈도우] WebView2 (0) | 2020.09.30 |
[정규식] 단어 AND, OR 연산 (0) | 2020.09.21 |
자연어 처리(Natural Language Processing) 이론 용어 (0) | 2020.09.07 |