Ubuntu 기준
> sudo apt-get install -y docker
> sudo systemctl start docker
> sudo docker pull ubuntu:16.04
> sudo docker images
컨테이너를 생성하려면 반드시 docker pull로 이미지를 다운로드하거나 docker build를 통해 생성한 이미지가 존재해야 한다.
--rm
: 컨테이너 종료 시 컨테이너 삭제-it
: 컨테이너 내부에서 키보드 입력이 가능하도록 함> sudo docker run --rm -it --name [컨테이너 이름] [이미지 이름]:[이미지 태그] [명령어]
예를 들어 docker pull 명령어로 다운로드한 ubuntu:16.04
이미지를 사용하여 컨테이너를 생성하고, bash 쉘을 통해 접속하려면 아래와 같이 입력한다.
> sudo docker run --rm -it ubuntu:16.04 bash
> sudo docker ps # 현재 실행 중인 컨테이너 목록
> sudo docker ps -a # 실행 종료되었지만 삭제되지 않는 컨테이너를 포함한 목록
sudo docker ps
명령어로 컨테이너 ID를 확인할 수 있다.
> sudo docker exec --rm -it [컨테이너 ID] bash
> sudo docker restart [컨테이너 ID]
ubuntu:16.04
라는 이미지 이름(ubuntu) 및 태그(16.04)를 my-ubuntu:16.04
로 변경해보자.
> sudo docker tag ubuntu:16.04 my-ubuntu:16.04
Dockerfile
을 사용하여 도커 이미지를 생성할 수 있다.
Dockerfile에서ADD
를 사용하여 로컬 컴퓨터에 존재하는 파일을 도커 이미지 내부로 복사하려는 경우, 해당 파일이 존재하는 위치에서 아래 명령을 수행하자.
만약, 해당 경로가 Dockerfile이 존재하는 경로와 동일하다면-f [Dockerfile 경로]
옵션은 제거해도 괜찮다.
> sudo docker build -f [Dockerfile 경로] -t [이미지 이름 및 태그] .
만약 직접 구축한 도커 레포지토리가 http 프로토콜만을 지원한다면
/etc/docker/daemon.json
파일을 아래와 같이 수정한다.
{
"insecure-registries": [
"[IP 주소]:[Port 번호]"
]
}
> sudo docker login
> sudo docker push [이미지 이름]:[태그 이름]
도커 이미지를 삭제하려면 실행 중인 컨테이너가 없어야 한다.
> sudo docker rm -f [컨테이너 ID] # 도커 컨테이너 삭제
> sudo docker rmi -f [이미지 ID] # 도커 이미지 삭제