본문 바로가기

개인공부/Docker

Docker: 기본 명령어 정리

반응형

도커 = 이미지 + 컨테이너

 

도커에서 사용되는 이미지의 이름은 기본적으로 [저장소 이름]/[이미지 이름]:[태그]의 형태로 구성됩니다.

 

ex) alicek106/ubuntu:14.04

ex) ubuntu:latest

 

저장소 일므은 이미지가 저장된 장소를 의미합니다. (도커허브, 공식)

이미지 이름은 해당 이미지가 어떤 역할을 하는지 나타냅니다.

태그는 이미지의 관리, 혹은 리버전 관리에 사용합니다. (입력하지 않으면 latest라고 인지하기도함)

 

실행

docker run -i -t ubuntu:14.04

 

리얼 종료

exit

Ctrl + D

 

중지하지 않고 뒤로가기

Ctrl + P, Q

 

pull

docker pull [이미지이름]

 

images 확인

docker images

 

컨테이너 생성

sudo docker create -i -t --name [설정이름] [이미지]

 

docker 시작

docker start mycentos

 

Docker 접속

docker attach mycentos

docker attach mycentos

 

컨테이너 목록 확인

docker ps // 실행중인 이미지만 보여준다.

docker ps -a // 정지된 것도 보고싶을 때

 

보기힘들 땐 format옵션을 사용해보자

docker ps —format “table {{.ID}}\t{{.Status}}\t{{.Image}}”

 

컨테이너이름변경

docker rename angry_morse my_container

 

정지

docker stop mycentos

 

제거

docker rm mycentos

 

실행중인거 제거

docker rm -f mycentos

 

모든 컨테이너 삭제

docker container prune

 

응용

docker ps -a -q (도커의 모든 컨테니어 아이디 출력)
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)

 

호스트 80 , 컨테이너 80과 매치

docker run -i -t —name web server -p 80:80 ubuntu:14.04

 

여러개의 포트를 개방할 때는 이렇게

docker run -i -t -p 3306:3306 -p 192.168.0.100:7777:80 ubuntu:14.04

 

mysql을 이용해서 database 컨테이너를 생성

 

docker run -d \
--name wordpressdb \
-e MYSQL_ROOT_PASSWSWORD=password \
-e MYSQL_DATABASE=wordpress \
mysql:5.7

 

미리 준비해둔 wordpress 이미지를 이용해 웹 서버 컨테이너를 생성합니다.

도커 80과 host포트중 하나가 연결됩니다.

sudo docker run -d \
-e WORDPRESS_DB_HOST=mysql \
-e WORDPRESS_DB_USER=root \
-e WORDPRESS_DB_PASSWORD=password \
--name wordpress \
--link wordpressdb:mysql \
-p 80 \
wordpress

 

호스트와 바인딩된 포트만 확인하려면 docker port 명령어를 사용합니다.

 

-d : -i -t 가 컨테이너 내부로 진입하도록 attach 가능한 상태로 설정한다면 -d는 detached 모드로 컨테이너를 실행합니다.

백그라운드에서 동작합니다. 셀환경을 사용할 수 있냐 없냐인데 mysql은 -i -t 설정을 해도 접속하면 이미 하나의 mysqld이 실행되고 있으므로 포그라운드로 실행된 로그만 볼 수 있을 뿐 할 수 있는게 없음

 

반대로 docker run -d --name detach_test ubuntu:14.04 를 실행하면 바로 꺼짐 왜냐하면 내부에 돌아가는 프로그램이 없기 때문...

 

-e : -e 옵션은 컨테이너 내부의 환경변수를 설정합니다.

 

echo ${ENVIRONMENT_NAME}

 

배쉬셀로 설정안되거 접소할때는 docker exec -i -t wordpressdb /bin/bash

 

--link 옵션은 내부 ip를 알 필요 없이 항상 컨테이너에 별명으로 접근하도록 설정합니다.

(추후 없어질 잇는 옵션이므로 도커 브릿지 네트워크를 사용하자)2

반응형

'개인공부 > Docker' 카테고리의 다른 글

Docker: 호스트 볼륨  (0) 2021.12.06