mjeongriver
article thumbnail
Published 2023. 3. 31. 14:23
day96-docker TIL/Docker

1. 도커 컨테이너 명령문

 

1) 도커 허브에서 이미지 다루기 컨테이너 명령문

 

https://seosh817.tistory.com/345

 

[Docker] 도커란? - 도커 개념 정리

이 포스트는 시작하세요 도커! 책을 참고하였습니다. 도커란? 도커(Docker)는 리눅스 컨테이너에 리눅스 어플리케이션을 프로세스 격리기술을 사용하여 더 쉽게 컨테이너로 실행하고 관리할 수

seosh817.tistory.com

  • 도커버전확인

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
profile

mjeongriver

@mjeongriver

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그