이제 Docker를 사용하여 컨테이너, 컨테이너 이미지, 볼륨 및 네트워크와 상호 작용하는 방법을 알아보자.

실습을 진행 하기전에 간단한 도커파일을 만들었다.
Dockerifile:
FROM ubuntu:22.04
RUN echo hello
CMD ["echo", "goodbye"]

Build: 도커 이미지로 부터 빌드한다.
docker image build -t new-image .
# equivalent
docker build -t new-image .

History: 이미지를 빌드하는과정에서 필요한 단계들을 보여준다.
docker image history new-image

Inspect: 이미지의 세부 정보를 알려준다.
docker image inspect new-image

Import: tarball에서 이미지를 생성한다.
docker image import file.tar
Load: docker save를 사용하여 생성된 tar 아카이브에서 이미지를 만든다.
docker image load -i file.tar
list: 시스템이 있는 모든이미지를 나열한다.
docker image ls
prune: 오래된 이미지를 지워준다.
docker image prune
pull: 이미지를 저장소로부터 pull
docker image pull image-name:tag

push: built된 이미지를 저장소에 push
docker image push image-name:tag
remove: 특정한 이미지를 지워준다.
docker image rm new-image

Save: tar archieve에 이미지 저장
이미지를 찍어서 tar에 버린다. 참고로 이건 컨테이너 밖에 있는 파일시스템을 탐색할때 편하다.
docker image save -o file.tar image-name:tag
tag: 새 태그로 이미지에 태그를 지정.
docker image tag ubuntu:22.04 my-ubuntu-image

scan(deprecated): 이미지에서 알려진 취약점을 스캔.
-> docker scout cves
참고: docker scout를 위해 docker 스캔이 더 이상 사용되지 않음.
docker scan ubuntu:22.04-> docker scout cves ubuntu:22.04


Attach: 컨테이너의 입력, 출력 및 오류 스트림에 로컬 셸을 연결.
docker container attach container-id
# equivalent
docker attach container-id
Exec: 컨테이너 내에서 새 명령을 실행.
docker container exec container-id command
# equivalent
docker exec container-id command
Inspect: 컨테이너에 대한 디테일한 정보를 보여줌.
docker container inspect container-id
Stop and Kill:컨테이너를 부드럽?게 종료하거나 강제로 종료.
docker container stop container-id
# equivalent
docker container stop container-id
docker container kill container-id
# equivalent
docker kill container-id
Logs: 컨테이너의 로그를 보여줌.
docker container logs container-id
# Add -f to tail the logs
docker container logs -f container-id
# equivalent
docker logs -f container-id
List: 실행되고 있는 모든 컨테이너의 list를 보여줌.
docker container ls
# Add -a to list stopped containers as well
docker container ls -a
# equivalent
docker ps -a