상세 컨텐츠

본문 제목

Docker - 기본command

개발공부/개발공부

by Dal_pang 2023. 6. 25. 22:07

본문

[Docker 기본 컨테이너 생성~삭제 lifecycle 커맨드]

 

'containerName'라는 이름의 컨테이너 생성 후 실행하는 커맨드. 이미지를 내려받아 실행함.

* 홑따옴표는 이해를 돕기위해 추가. 실제 커맨드 입력 시에는 입력하지 말 것.

docker run --name 'containerName' -d httpd

실행 중인 프로세스확인 [존재하는 컨테이너 모두(실행 안된 것도 포함)] 

docker ps [-a]

컨테이너 중지

docker stop 'containerName'

컨테이너 삭제

docker rm 'containerName'

[MySQL 컨테이너 생성]

MySQL와 같은 경우, Apache, Nginx와 다르게 인자를 반드시 지정해야 한다.

docker run --name 'mysqlex01' -dit -e MYSQL_ROOT_PASSWORD='rootpassword' mysql

-dit : 키보드를 통해 컨테이너 내부 파일 시스템을 다루기 위해 -i, -t 옵션을 사용. 일반적으로 daemon으로 백그라운드 실행을 하라는 -d 옵션과 함께 -dit로 사용.

-e : 환경설정

-e MYSQL_ROOT_PASSWORD : 루트 패스워드 지정.

mysql : mysql 최신버전 이미지 사용

 

[컨테이너와 통신]

웹서버를 띄우고 접근이 가능하게 하기 위해서는 컨테이너가 외부와 접속할 수 있는 컨테이너 포트 번호를 지정해 주고,

해당 컨테이너를 실행 중인 물리적 컴퓨터가 외부의 접근을 대신 받아 전달해 줄 수 있도록 호스트 포트 번호를 지정해

이 두 포트 번호를 연결해줘야 한다.

*Port Binding이라고 찾아보면 잘 나온다.

이때 호스트 포트번호는 다 달라야 하지만, 컨테이너는 각각 독립적이므로 컨테이너 포트번호를 동일하게 설정해 줘도 무관하다.

포트 설정 시 사용방법

-p HostPortNumber:ContainerPortNumber
//실제 예제
docker run --name 'newContainerWithPortBinding' -d -p 8080:80

 

[이미지 버전을 특정 짓고 싶은 경우]

docker run --name 'newContainerName' -d -p '8080:80' httpd:2.2 //생성시
docker image rm httpd:2.2

[Docker Image Command]

도커 이미지를 위와 같이 만든 후 해당 컨테이너를 삭제하면, 컨테이너는 삭제되더라도 이미지는 남아있다.

반대로 이미지 삭제 시엔 해당 이미지로 생성한 모든 컨테이너가 삭제되어야 삭제가 가능하다.

 

docker image rm '이미지명' //이미지 삭제
docker image ls //이미지 목록

 

728x90

관련글 더보기