도커 = 이미지 + 컨테이너
도커에서 사용되는 이미지의 이름은 기본적으로 [저장소 이름]/[이미지 이름]:[태그]의 형태로 구성됩니다.
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
'개인공부' 카테고리의 다른 글
Server 용어정리 (0) | 2021.12.07 |
---|---|
Docker: 호스트 볼륨 (0) | 2021.12.06 |
Array.from 과 Array().fill 차이점. (0) | 2021.07.01 |
정규 표현식과 일치하는 값 해체하기 (0) | 2021.06.28 |
javascript: 상속 (extends) (0) | 2021.06.27 |