
도커 설치하는 부분은 다음주에 포스팅 할 예정입니다!!!
도커 엔진은 도커 설치와 함께 실행됩니다. 계속 동작 상태로 남아 있지만 컨테이너를 실행 중이 아니라면 컴퓨터의 리소스를 거의 차지하지 않으므로 문제가 없습니다!! 원래 서버는 24시간 365일 항상 가동됩니다. 도커 엔진 역시 정지시킬 일이 별로 없지만, 학습 목적으로는 종료 시켜도 무방합니다.
도커 데스크톱은 도커 엔진을 자동으로 실행하도록 설정 되어있기 때문에 이 설정도 비활성화하지 않으면 컴퓨터가 부팅될 때마다 도커 엔진도 자동으로 실행됩니다. 리눅스에서는 자동 실행이 기본 설정이 아닙니다. 실제 사용 시 곤란해질수 있기 때문에 자동 실행을 설정해 두는 것을 추천합니다!
지금까지는 도커 엔진에 한정적인 이야기 입니다. 도커 엔진 위에서 동작하는 컨테이너는 다릅니다. 도커 데스크톱이나 리눅스 버전 모두 도커 엔진이 한번 종료되면 모든 컨테이너는 정지 상태가 됩니다.
컨테이너에는 자동 실행 설정이 없습니다.
정리)
< 윈도우 >
1.도커 엔진 시작
2.도커 엔진 종료
3.자동 실행 설정
< macOs >
1.도커 엔진 시작
2.도커 엔진 종료
3.자동 실행 설정
< 리눅스 >
1.도커 엔진 시작
2.도커 엔진 종료
3.자동 실행 설정
컨테이너를 다루는 모든 명령어는 'docker'명령어로 시작합니다.
docker ~
docker 명령어 뒤에 오는 '무엇을','어떻게'에 해당하는 부분을 '커맨드' 라고합니다. 커맨드는 상위커맨드(무엇을)와 하위커맨드(어떻게)로 나뉘어져 있습니다.
docker 커맨드(상위+하위) 대상
docker container(상위) run(하위) apple(대상)
상위커맨드는 container,image등과 같이 12 종류입니다.
예를들어, apple 이라는 이미지로 컨테이너를 시작한다면?
docker container start apple
그러나 실제로 다뤄본다면 길이가 더 긴 커맨드를 자주 작성할 것입니다.
커맨드와 대상을 제외하고, 옵션과 인자라는 추가정보를 붙힙니다.
예를 들어,
docker container run -d(옵션) apple --mode=1(인자)
-d는 백그라운드로 실행하라 라는 뜻입니다.
--mode=1는 모드 1로 실행하라 라는 뜻입니다.
< 사전준비 >
도커 엔진을 실행시킵니다. 명령 프롬포트나, 터미널을 이용하기 때문에 열어둡니다.
저는 윈도우이기 때문에 cmd 창을 열고, docker만 써봤습니다.
docker

다양한 도커 커맨드와 옵션들의 정보들이 나옵니다!!
이제 도커 버전을 확인해볼까요?
docker version

자신이 설치한 도커 버전이 나옵니다.
컨테이너를 실행할 때는 docker run 커맨드를 사용합니다.
이 커맨드는 도커 컨테이너를 생성하고, 실행하는 기능을 합니다. 컨테이너를 실행 하려면 이미지가 필요한데, 필요한 이미지가 없다면 이미지를 내려받는 기능도 함께 이루어 집니다.
docker pull -> docker create -> docker start = docker run
컨테이너의 생애주기는 생성 -> 실행 -> 정지 -> 삭제 입니다.
칸테이너를 페기하려면 먼저 정지시켜야 합니다. 동작 중인 컨테이너를 그대로 삭제할 수는 없습니다.
docker stop 정지
docker rm 삭제
docker ps는 현재 실행중인 컨테이너의 목록을 확인합니다.
-a 를 추가한다면 현재 존재하는 컨테이너의 목록을 출력합니다.
docker ps
docker ps -a

현재는 컨테이너를 만들지 않았기 때문에 아무것도 뜨지 않습니다.
< 흐름 >
1. 컨테이너 생성 및 실행
2. 컨테이너 상태 확인
3. 컨테이너 종료
4. 컨테이너 상태확인
5. 컨테이너 삭제
6. 컨테이너 상태확인
<생성할 컨테이너 정보>
| 항목 | 값 |
|---|---|
| 컨테이너이름 | apa000ex1 |
| 이미지 이름 | httpd |
< 명령어 >
docker run --name apa000ex1 -d httpd
< 옵션 항목 >
| 항목 | 내용 |
|---|---|
| --name apa000ex1 | apa000ex1이라는 이름으로 컨테이너 생성 |
| -d | 백그라운드로 실행 |
| httpd | 아파지의 이미지이름, 버전을 지정하지 않아서 가장 최신 버전인 latest가 사용됩니다. |

생성완료!!
< 목록 확인 >

< 컨테이너 종료 >

< 종료 확인 >

컨테이너를 종료하여 현재 실행되고 있는 컨테이너는 없습니다. 그러나 -a 옵션을 추가하여 현재 컨테이너 목록을 보면 
컨테이너가 존재합니다.
< 컨테이너 삭제 >

< 삭제 확인 >

현재 실행중인 컨테이너와 존재하는 컨테이너 둘다 출력되지 않는 것을 확인할 수 있습니다.
다음 포스팅은 컨테이너의 통신에 대해서 포스팅 하도록 하겠습니다.!!