[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 //이미지 목록
docker - LAMP (linux+Apache+MySQL+PHP) (0) | 2023.06.25 |
---|---|
docker - wordPress 구축 (0) | 2023.06.25 |
JavaScript 검색 구현 - 검색 키워드로 값 필터링하기. (0) | 2023.04.23 |
Javascript 암호화, 복호화 메서드 (0) | 2023.02.27 |
SSO - Single Sign-On? (1) | 2023.02.17 |