ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2. 설치, 기초명령어 1편
    Learn/Docker 2021. 4. 25. 00:03

    [ 설치하기 ]

    install은 어렵지 않다.

    curl -s https://get.docker.com/ | sudo sh

     

    docker 명령어를 날리면 아래와 같은 메시지가 나오는데, 지금까지 생각없이 그냥 sudo 넣어서 써왔다. 

    "Got permission denied while trying to connect to the Docker daemon socket...."

    간단하게 유저 권한을 넣어주면 해방 (터미널 끄고 다시 열어야 적용됨)

    sudo usermod -aG docker ${userid}

     

    윈도우는 docker for windows를 쓰면 편한데, 가상머신 위에 올린다. (Hyper-V)

     

    내가 쓰는 도커는 내부적으로 호스트와 클라이언트가 나뉘어있다. 

    docker version 쳤을때

    내가 명령어를 치는곳은 클라이언트고, 실제론 호스트의 daemon에서 처리해서 결과를 전달해준다. 

    (당장 어디 쓰는건 아니고, 추후에 문제 생겼을 때 이 구조를 알아두면 도움이 된다고 한다.)

     

    [ 기본 명령어 ]

     

    docker run

    기본적으로 아래와 같이 컨테이너를 띄우는데, 없으면 알아서 다운로드해준다. 

    docker run ubuntu:20.04

    다만 run 외에 어떤 명령어도 주지 않았기 때문에 바로 종료된다. 

    아래와 같이 실행하면 -it에 의해 컨테이너의 터미널에 /bin/sh를 입력해서 컨테이너의 쉘을 사용할 수 있게 된다. 

    여기서 나가면 컨테이너는 중단된 상태로 남아있는데, --rm을 주면 나가는 동시에 삭제한다. 

    docker run --rm -it ubuntu:20.04 /bin/sh

    ubuntu나 centos의 기능이 필요없으면 alpine이라는 5MB 사이즈의 작은 이미지도 있다고 한다. 

     

    jupyter notebook을 띄울때 컨테이너만 쓰고 터미널을 계속 쓰고 싶었는데 -d를 쓰면 된다. 

     

    띄어놓은 컨테이너에 접속하는 방법은. 

    첫 번째 mysql은 컨테이너 이름. 두 번재 mysql은 컨테이너 안에서 mysql을 실행하기 위한 명령어이다. 

    docker exec -it mysql mysql

    컨테이너 안에 ssh를 설치해서 접속할 수도 있지만, 보안 문제로 exec를 권장한다고 한다. 

     

    -p는 포트설정시 많이 쓰는데 {host}:{client} 이다. 

     

     

    실습에 mysql 사용하는게 나오는데 왜 진작 도커를 안배웠을까 싶다. 

    예전에 2년정도 이미 쓰고 있던 mysql 서버가 있었고 잘못 건드리면 큰일나는 상황이었다. 

    마침 다른 포트로 하나 더 열어야하는 상황이 생겼고 노심초사 하면서 구글링의 늪에 빠졌던 기억이 난다. 

    도커로 이렇게 간단한것을... 역시 배워야된다. 열심히 시간만 녹인다고 칭찬받을게 아니다. 

     

     

    'Learn > Docker' 카테고리의 다른 글

    5. 이미지 만들고 배포하기  (0) 2021.04.29
    4. Compose  (0) 2021.04.26
    3. 기초명령어 2편  (0) 2021.04.26
    1. 개요 - 도커와 쿠버네티스  (0) 2021.04.20

    댓글

Designed by Tistory.