Docker provides the ability to package and run an application in a loosely isolated environment called a container.
Docker는 컨테이너 환경에서 애플리케이션을 패키징하고 실행할 수 있는 기능을 제공합니다.

docker container create ubuntu:latest

내 로컬에 ubuntu:latest 이미지가 없기 때문에 pulling 하는 과정이 포함됨
docker ps -a 를 통해 결과 확인

CONTANER ID : 컨테이너의 식별자
IMAGE : 컨테이너의 베이스 이미지
COMMAND : 컨테이너가 현재 실행중인 명령
CREATED : 언제 만들어졌는지
STATUS : 어떤 상태인지
PORTS : Base OS와 도커 컨테이너 맵핑
ex> 0.0.0.0:8080->80/tcp : 외부 기기에서 Base 0S에 8080으로 접근하면 이 컨테이너 서비스에 연결됨
NAMES : 컨테이너의 이름! 따로 설정하지 않으면 디폴트로 형용사_사람이름으로 만들어준다고 한다
docker container create --name mylinux ubuntu:latest
docker ps -a

NAMES가 mylinux로 설정되어 컨테이너가 생성됨
docker container start mylinux
docker ps -a

STATUS가 Created에서 Exited (0) * seconds ago 로 변경됨
컨테이너가 명령을 다 실행하고 종료되었다는 의미
좀 더 직관적으로 살펴보기 위해 터미널과 interaction 조건 추가해서 만들어봄
docker container create --name mylinux -it ubuntu:latest
docker container start -i mylinux
-i : 키보드 입력을 받겠다~
-t : 터미널을 쓰겠다
그 상태에서 다른 터미널 열어서
docker ps -a

STATUS가 Up 4 minutes
echo "test" > test.txt
ls

test.txt가 잘 생성됨!
exit
해당 터미널에서 나감

STATUS가 Up Exited (0) * seconds ago 로 다시 바뀜!
docker container start -i mylinux

동일한 root id > 동일한 환경에 재접속함
그 상태에서 다른 터미널 열어서
docker container stop mylinux

명령어가 먹히자마자 컨테이너에 접속된 터미널은 종료됨
아예 삭제하고 create를 다시 해보자
docker container rm mylinux

docker container create --name mylinux -it ubuntu:latest
docker container start -i mylinux
ls

root id와 test.txt가 없는 것으로 보아 아예 다른 컨테이너가 만들어졌다
컨테이너가 실행될 때 스냅샷이 만들어지고, 컨테이너가 삭제되면 해당 스냅샷도 삭제된다
docker container run은 create와 start를 한번에 해주는 명령
docker container run --name mylinux -it ubuntu:latest
create + start 한 결과와 완전히 동일함
