Docker
11 Jun 2019Container
- 이미지를 실행한 상태
- 같은 이미지에서 여러개의 컨테이너를 실행할 수 있다.
- 추가되거나 변하는 값들은 컨테이너에 저장된다.
Image
컨테이너 실행에 필요한 모든 정보를 가지고 있다.
Docker hub
도커 이미지들이 등록되어 있다
설치
설치 확인
- docker version
이미지
- 로컬에 저장된 이미지 확인
- docker images
- 다운로드
- docker pull ubuntu:14.04
- 삭제
- docker rmi ${IMAGE ID}
컨테이너 목록 확인
- 실행중인 목록
- docker ps
- 전체 목록
- docker ps -a
컨테이너 실행
- docker run ubuntu
- 이미지가 없으면 자동으로 pull한 후 실행된다.
- docker pull + docker create + docker start
- 로컬에서 특정 태그의 이미지가 있으면 실행이 안될 수 있다.
- 이미지가 없으면 자동으로 pull한 후 실행된다.
- docker run –rm -it ubuntu /bin/bash
- –rm: exit로 나오면 컨테이너를 자동으로 삭제한다.
- -it: 컨테이너 내부의 쉘을 실행하고 키보드 입력을 할 수 있다.
- git bash에서 실행할 경우 아래 에러가 발생
- the input device is not a TTY. If you are using mintty, try prefixing the command with ‘winpty’
- 아래 명령을 실행
- winpty docker run –rm -it ubuntu bash
- 참고
- docker run -d -p 1234:6379 redis
- -d
- 백그라운드에서 실행한다.
- -p 1234:6379
- 도커를 실행하는 호스트의 1234포트를 컨테이너의 6379포트에 연결한다.
- -d
- docker run -d -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=true --name mysql mysql5.7
- -e
- 환경변수 설정
- --name
- 컨테이너 이름
- -e
컨테이너 중지
- docker stop ${CONTAINER ID}
컨테이너 제거
- docker rm ${CONTAINER ID}
컨테이너 로그
- docker logs ${CONTAINER ID}
- docker logs –tail 10 ${CONTAINER ID}
- 마지막 10줄
- docker logs -f ${CONTAINER ID}
- 실시간
컨테이너 내부의 명령 실행
- docker exec -it mysql /bin/bash