docker run [OPTIONS] IMAGE[:TAGI@DIGEST] [COMMAND] [ARG...]

- no : 재시작하지않음
- om-failure : 종료 스테이터스가 0이 아닐 때 n번 재시작
- always : 항상 재시작
- unless-stopped : 최근 컨테이너가 정지 상태가 아니라면 항상 재시작
컨테이너 목록 확인하기
docker ps [OPTIONS]
컨테이너 중지하기
docker stop [OPTIONS] CONTAINER [CONTAINER...]
종료된 컨테이너를 완전히 제거
docker rm [OPTIONS] CONTAINER [CONTAINER...]
docker rm -v $(docker ps -a -q -f status=exited)
이미지 목록 확인하기
docker images [OPTIONS] [REPOSITORY[:TAG]]
이미지 주소와 태그, ID, 생성시점, 용량을 확인할 수 있습니다.
이미지 다운로드하기
docker pull [OPTIONS] NAME[:TAGI@DIGEST]
이미지를 삭제합니다.
docker rmi [OPTIONS] IMAGE [IMAGE...]
단 컨테이너가 실행중인 이미지는 삭제되지 않습니다.
컨테이너 로그보기
docker logs [OPTIONS] CONTAINER
실행중인 컨테이너에 들어가거나 컨테이너의 파일을 실행하고 싶을 때가 있습니다.
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
run은 새로 컨테이너를 만들어서 실행하고 exec는 실행중인 컨테이너에 명령어로 실행합니다.
docker 상에서 작동하는 컨테이너 기동 상태를 확인합니다
docker container ls [OPTIONS]
- --all, -a : 실행 중/정지 중인 것도 포함하여 모든 컨테이너 표시
- --filter, -f : 표시할 컨테이너의 필터링
- --format : 표시 포맷을 지정
- --last, -n : 마지막으로 실행된 n건의 컨테이너만 표시
- --lastest, -l : 마지막으로 실행된 컨테이너만 표시
- --no-trunc : 정보를 생략하지 않고 표시
- --quiet, -q : 컨테이너 ID만 표시
- --size, -s : 파일 크기 표시
이미지 생성방법은 3가지가 존재합니다.
이 방법은 우선 기본 이미지를 실행시킨 후, 컨테이너 안에 원하는 패키지나 소스코드 등 작업을 진행합니다. 그 후에, commit 명령어로 원하는 작업이 추가된 새로운 이미지를 얻습니다.

docker commit [OPTIONS] CONTANINER_명 [저장소이름]/이미지이름[:TAG]
Dockerfile로 이미지를 커스터마이징하여 사용하는 방식, Dockerfile을 build하면, 커스터마이징된 이미지가 생성됩니다.

vs code에서 확장도구를 설치하면 쉽게 작성할 수 있습니다.
# 1. 우분투 설치
FROM ubuntu:18.04
# 2. 메타데이터 표시
LABEL "purpose"="practice"
# 3. 업데이트 및 아파치 설치
RUN apt-get update
RUN apt-get install apache2 -y
# 4. 호스트에 있는 파일을 추가
ADD test.html /var/www/html
# 5. 작업공간 이동(=cd)
WORKDIR /var/www/html
# 6. 거기서 test2.html 파일생성
RUN ["/bin/bash", "-c", "echo hello > test2.html"]
# 7. 포트 80번 노출 지정
EXPOSE 80
# 8. 컨테이너 생성시 시작명령어
CMD apachectl -DFOREGROUND
- FROM : 생성할 이미지의 베이스가 될 이미지를 뜻합니다.
- LABEL : 이미지에 메타데이터를 추가합니다.
- RUN : 이미지를 만들기 위해 컨테이너 내부에서 명령어를 실행합니다. -y 꼭넣어줘야합니다.
- ADD : 파일을 이미지에 추가합니다. 여기서는 Dockerfile이 위치한 폴더에 test.html 파일을 가져와서 이미지의 /var/www/html 디렉터리에 추가합니다.
- COPY : 파일을 이미지에 추가, 로컬 파일 이미지에 추가
- WORKDIR : 명령어를 실행할 디렉토리
- EXPOSE : 이미지에서 노출할 포트를 설정합니다.
- CMD : 컨테이너가 시작될 때마다 실행할 명령어
- ENTRYPOINT : 컨테이너가 시작될 때마다 실행할 명령어를 설정
- ENV : 환경변수 지정
- VOLUME : 호스트와 컨테이너 내부의 디렉토리를 설정하여 데이터를 공유합니다. 도커 실행시 -v 명령어로 지정해야 볼륨이 생성됩니다.
docker build [OPTIONS] 도커파일경로
docker run -dp 3000:3000 getting-started
https://cultivo-hy.github.io/docker/image/usage/2019/03/14/Docker%EC%A0%95%EB%A6%AC/
https://dev-youngjun.tistory.com/3#
https://ryu-e.tistory.com/10
https://code-masterjung.tistory.com/132