ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Docker] Docker 간단한 명령어로 실습해보기
    DevOps/Docker 2021. 3. 29. 14:43
    728x90
    반응형

    Docker 클라이언트 명령어 알아보기

    docker run <이미지이름>

    앞에서 위와 같은 명령어를 사용했었습니다. 위의 명령어는 어떤 의미를 가지고 있을까요?

     

    스크린샷 2021-03-29 오전 10 37 36

    1. 도커 클라이언트에 명령어 입력후 도커 서버로 보냄
    2. 도커 서버에서 컨테이너를 위한 이미지가 이미 캐쉬가 되어 있는지 확인
    3. 없으면 도커 허브에서 다운 받아옴(Pulling) 있다면 이미 가지고 있는 이미지 컨테이너 생성

     

    docker run alpine ls

    스크린샷 2021-03-29 오전 10 39 56

    위와 같이 뜨는 것을 볼 수 있습니다. 저는 alpine 이미지가 이미 존재하기 때문에 바로 위와 같이 컨테이너가 실행된 것을 볼 수 있습니다. 

     

     

     

    ubuntu 컨테이너

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

    스크린샷 2021-03-29 오전 11 21 31

    • --rm: 컨테이너를 실행하고 바로 삭제하라는 명령어

    위와 같이 ubuntu:20.04 이미지를 dockerhub에서 받아와 다운받고 컨테이너를 실행하는 것을 볼 수 있습니다. 

     

     

    웹 어플리케이션 실행하기

    docker run --rm -p 5678:5678 hashicorp/http-echo -text="hello world"

    스크린샷 2021-03-29 오전 11 23 21스크린샷 2021-03-29 오전 11 23 59

     

    위와 같이 http://localhost:5678로 접속했을 때 명령어가 뜨는 것을 볼 수 있습니다.

    • -p: 옵션을 통해서 나의 PC 포트와 컨테이너 포트를 매핑할 수 있습니다. 즉, 나의 Local PC 5678 port와 컨테이너 5678 port를 연결시키겠다는 뜻입니다. 

     

    MySQL 실행하기

    docker run -d -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=true --name mysql mysql:5.7

    스크린샷 2021-03-29 오전 11 26 11

    그러면 위와 같이 Dockerhub에서 이미지를 다운받는 것을 볼 수 있습니다. 

    • -d: detach 모드라고 해서 백그라운드로 컨테이너를 실행하게 만드는 명령어 입니다. 
    • 위의 명령어는 --name을 통해서 mysql 이라는 이름의 컨테이너를 실행시키고 있습니다.

     

    docker exec -it mysql mysql
    • exec 명령어: exec 명령어는 run 명령어와 달리 실행중인 도커 컨테이너에 접속할 때 사용하며 컨테이너 안에 ssh server 등을 설치하지 않고 exec 명령어로 접속합니다.

     

    위와 같이 mysql 이미지를 실행하여 컨테이너를 만들어 접속할 수 있습니다. 

    create database wp CHARACTER SET utf8;
    grant all privileges on wp.* to wp@'%' identified by 'wp';
    flush privileges;

    그리고 MySQL에서 위와 같이 입력을 하겠습니다.  

     

     

    워드프레스 블로그 실행하기

    docker run -d -p 8080:80 -e WORDPRESS_DB_HOST=host.docker.internal -e WORDPRESS_DB_NAME=wp -e WORDPRESS_DB_USER=wp -e WORDPRESS_DB_PASSWORD=wp wordpress

    스크린샷 2021-03-29 오전 11 33 01스크린샷 2021-03-29 오전 11 33 29

    그리고 워드프레스와 MySQL을 명령어를 통해서 연결하면 위와 같이http://localhost:8080에서 WordPress가 실행되는 것을 볼 수 있습니다.

     

     

     

    컨테이너 나열하기

    docker ps (실행 중인 컨테이너 보기)
    docker ps -a (모든 컨테이너 보기)
    docker images (가지고 있는 이미지들 보기)

    스크린샷 2021-03-29 오전 10 43 11

    위와 같이 docker Container ID, Image 등등을 볼 수 있습니다.

     

     

     

    Docker 컨테이너 생명주기

    스크린샷 2021-03-29 오전 10 45 20

    Docker 컨테이너는 위와 같은 생명주기를 갖고 있습니다. 엄청 많은 명령어를 가지고 있지만 간단하게 몇 개 명령어만 알아보겠습니다.

    docker run <이미지 이름>
    docker stop <컨테이너 ID> 
    docker kill <컨테이너 ID>
    docker rm <컨테이너 이름> => 먼저 실행 중인 컨테이너가 중지 되어 있어야 함
    docker rmi ImageID => 이미지 삭제
    반응형

    댓글

Designed by Tistory.