-
[Docker] Docker 간단한 명령어로 실습해보기DevOps/Docker 2021. 3. 29. 14:43728x90반응형
Docker 클라이언트 명령어 알아보기
docker run <이미지이름>
앞에서 위와 같은 명령어를 사용했었습니다. 위의 명령어는 어떤 의미를 가지고 있을까요?
- 도커 클라이언트에 명령어 입력후 도커 서버로 보냄
- 도커 서버에서 컨테이너를 위한 이미지가 이미 캐쉬가 되어 있는지 확인
- 없으면 도커 허브에서 다운 받아옴(Pulling) 있다면 이미 가지고 있는 이미지 컨테이너 생성
docker run alpine ls
위와 같이 뜨는 것을 볼 수 있습니다. 저는 alpine 이미지가 이미 존재하기 때문에 바로 위와 같이 컨테이너가 실행된 것을 볼 수 있습니다.
ubuntu 컨테이너
docker run --rm -it ubuntu:20.04 /bin/sh
- --rm: 컨테이너를 실행하고 바로 삭제하라는 명령어
위와 같이 ubuntu:20.04 이미지를 dockerhub에서 받아와 다운받고 컨테이너를 실행하는 것을 볼 수 있습니다.
웹 어플리케이션 실행하기
docker run --rm -p 5678:5678 hashicorp/http-echo -text="hello world"
위와 같이
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
그러면 위와 같이
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
그리고 워드프레스와 MySQL을 명령어를 통해서 연결하면 위와 같이
http://localhost:8080
에서WordPress
가 실행되는 것을 볼 수 있습니다.컨테이너 나열하기
docker ps (실행 중인 컨테이너 보기) docker ps -a (모든 컨테이너 보기) docker images (가지고 있는 이미지들 보기)
위와 같이
docker Container ID
,Image
등등을 볼 수 있습니다.Docker 컨테이너 생명주기
Docker 컨테이너는 위와 같은 생명주기를 갖고 있습니다. 엄청 많은 명령어를 가지고 있지만 간단하게 몇 개 명령어만 알아보겠습니다.
docker run <이미지 이름> docker stop <컨테이너 ID> docker kill <컨테이너 ID> docker rm <컨테이너 이름> => 먼저 실행 중인 컨테이너가 중지 되어 있어야 함 docker rmi ImageID => 이미지 삭제
반응형'DevOps > Docker' 카테고리의 다른 글
[Docker] EC2에서 Docker 컨테이너를 활용하여 웹 서버 실행하기 (0) 2021.03.29 [Docker] Docker Image로 Container를 만드는 과정 (0) 2021.03.29 [Docker] Docker Image를 직접 만들어 보기 (1) 2021.03.29 [Docker] Docker와 기존 가상화 기술의 차이 알아보기 (0) 2021.03.29 [Docker] Docker란 무엇이고 왜 사용할까? (0) 2021.03.29