[Docker] 도커 사용법

Code 2020. 11. 25. 17:01

[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

 

//---------------------------

http://laradock.io/

 

    - 다운로드

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.




반응형
Posted by codens