1. 도커 컨테이너 명령문
1) 도커 허브에서 이미지 다루기 컨테이너 명령문
https://seosh817.tistory.com/345
- 도커버전확인
docker version docker info
- 도커허브에서 이미지 찾기
docker search <찾을이미지>
- 도커허브에서 이미지 내려받기
docker pull <이미지이름:태그> docker pull tomcat:9
- 도커이미지 확인하기
docker image docker image +커맨드 docker images
- 도커이미지 상세보기
docker inspect <이미지명 or 컨테이너명>
- 도커컨테이너 생성 (보통 run으로함)
docker create --name <컨테이너명> <이미지명:태그명>
- 도커 컨테이너 생성과 실행하기 (pull + create + start)
docker run <옵션> <이미지:태그> docker run --name myserver tomcat:9 docker run --name myserver -d -p 8888:8080 tomcat:9
옵션명 | 기능 |
--name[컨테이너 이름] | 컨테이너의 이름을 직접 지정 |
--net [네트워크명] | 네트워크를 추가함 |
-d | 컨테이너를 백그라운드에서 동작하는 애플리케이션을 실행할 때 설정 |
-p [호스트 포트]:[컨테이너 포트] | 호스트의 N번 포트를 컨테이너의 N번 포트와 연결 (여러 번 사용 가능) |
-p [호스트 IP]:[호스트 포트]:[컨테이너 포트] | 특정 바인딩 IP인 호스트의 N번 포트를 컨테이너의 N번 포트와 연결 (여러 번 사용 가능) |
-v [호스트 디렉토리]:[컨테이너 디렉토리] | 볼륨. 호스트의 디렉토리와 컨테이너의 디렉토리를 공유 |
-e [키=값] | 컨테이너 실행시 필요한 환경변수를 전달함 |
- 현재 동작하는 도커 확인하기
docker ps -a
- 도커 컨테이너 시작
docker start <아이디 or names명>
도커 start와 run은 뭐가 다른가요?
run은 (pull + create + start)를 같이 처리합니다. start는 중지 되어있는 컨테이너를 실행합니다.
- 도커 컨테이너 중지
docker stop <아이디 or names명>
- 도커 컨테이너 재시작
docker restart <container_name>
- 도커 컨테이너 삭제 (실행중인 컨테이너 삭제 -f)
docker rm -f <아이디 or names명>
- 도커 이미지 삭제
docker rmi <아이디 or names명:버전명>
- 포트 포워딩
- 실습
myserver 도커를 지우고 8888요청시 8080으로 포트 포워딩시켜 컨테이너를 가동시켜주세요.
docker run --name myserver -d -p 8888:8080 tomcat:9
2) 도커 데이터 베이스 이미지로 설치하기(컨테이너 접속하기 명령문)
- 찾기
docker search mysql
- 이미지 당겨오기
docker pull mysql
- 실행
사용 방법은 도커 허브가 제공 https://hub.docker.com/_/mysql
- 우리 수업에는 window에 이미 mysql이 설치되어 있습니다.
- host에서 3307로 접속시 컨테이너의 3306으로 포트포워딩 시킵니다.
- -e 옵션으로 초기 root비밀번호를 전달 해야 합니다
- 이후 데이터베이스 설치되고 켜질 때 까지 약 3분 정도 소요가 됩니다. log확인 ~~~~>(port: 3306 MySQL Community Server - GPL)
docker run --name <container_name> -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=비밀번호 mysql
- 도커 컨테이너 안으로 접속하기
- attach - 가동중인 컨테이너에 연결됩니다.
- 백그라운드로 프로세스가 돌고 있으면 가동되는 프로세스로 진입됩니다.(log) )
docker ps docker attach <가동중인 컨테이너>
- exec - 가동중인 컨테이너에 새로운 프로세스로 연결합니다.
- mysql 서버는 백그라운드로 돌기 때문에 이렇게 접근
- 진입시 우분투 이미지가 설치된 우분투 환경으로 접속 됩니다.
- -i : 인터렉티브(상호작용), t- tty(터미널)
docker exec -it <가동중인컨테이너> /bin/bash docker exec -it <가동중인컨테이너> /bin/sh
- 도커mysql 쉘에 접속해보기
docker exec -it <container_name> /bin/bash mysql -u root -p
- workbench로 도커접속하기
- 컨테이너 생성시 3307로 접속시 3306으로 포트 포워딩 시켰습니다.
- 클라이언트에서 접속은 이렇게 할 수 있겠죠.
- 도커 컨테이너 안에 mysql은 기본 port가 3306입니다.
'TIL > Docker' 카테고리의 다른 글
day96-docker hub 저장소(feat.registry) (0) | 2023.03.31 |
---|---|
day96-docker volume (0) | 2023.03.31 |
day96-docker 네트워크 (0) | 2023.03.31 |
day96-dockerfile (0) | 2023.03.31 |
day96-docker (0) | 2023.03.31 |