참고
요약
도커 허브에서 이미지를 다운로드 받고 기본적인 명령어들을 사용해 봅니다.
#이미지 다운로드
DockerHub에서 ubuntu로 검색 하여 image 다운로드 cmd 복사
#이미지 다운로드 후 확인
docker pull ubuntu:20.04
docker images
#이미지로 컨테이너 실행
docker run -it --name myubuntu ubuntu:20.04 bash
컨테이너가 실행되고 컨테이너에 접속하여 bash가 실행된 상태
#컨테이너에서 나오기
exit
실행중인 컨테이너가 없는 상태
#모든 컨테이너 목록 확인
docker ps -a
아까 실행 했었던 컨테이너가 종료되어 있는 모습
#컨테이너를 다시 실행 시킨 후 실행중인 컨테이너 목록 확인
docker start myubuntu
docker ps
컨테이너를 실행하는 run과 start의 차이
- run : 컨테이너를 새로 만들면서 실행
- start : 생성되어 있는 컨테이너를 실행
docker ps -a
모든 컨테이너 목록 에서도 실행중인 상태
#컨테이너 안으로 들어가기
docker ps
docker attach [실행중인 컨테이너 id]
#컨테이너 중지하지 않고 밖으로 나와서 실행중인 컨테이너 목록 확인
ctrl + p + q
컨테이너에서 빠져 나왔어도 여전히 실행중인 컨테이너
#실행중인 컨테이너 종료 후 확인
docker ps
docker stop [종료할 컨테이너 id]
docker ps
자세히
#도커 허브는
도커 이미지를 저장, 공유 해주는 서비스 입니다. (git과 github 같은)
공개용 이미지는 무료로 도커 허브에 저장할 수 있습니다.
비공개 이미지를 저장하려면 비용을 지불해야 합니다.
#도커 이미지 이름 규칙
- [저장소 명]/[이미지 명]:[태그]
- 저장소 이름은 이미지가 저장되어 있는 저장소를 의미
- 저장소 이름이 명시되지 않은 경우는 도커에서 기본적으로 제공하는 공식 이미지를 뜻함
- 이미지 명은 해당 이미지가 어떤 역할을 하는지 나타냄
- 태그는 이미지의 버전관리, 혹은 리비전 관리에 사용
- 태그를 생략하면 최신버전(latest)로 인식함
- 저장소 이름은 이미지가 저장되어 있는 저장소를 의미
#docker Hub에 등록된 이미지 검색
docker search [이미지이름:태그]
docker search ubuntu
#도커 이미지 태그 리스트
docker search는 이미지의 tag(버전)목록을 출력하는 기능은 지원되지 않고,
linux의 function을 이용한 방법으로 특정 이미지의 태그 목록을 얻어올 수 있습니다.
사용해본 결과를 먼저 말씀드리자면...
(아직 경험하지 못한 다른 용도 면에서 효율이 있는지는 모르겠으나)
ubuntu 라고 검색 했을때 변형되지 않은 순수한 ubuntu의 버전 목록을 기대 했으나
ubuntu / tags에 등록된 모든 버전이 검색되서 필요가 없는 것 같고,
function 작성해서 등록 시키고 목록 검색하느니, 그냥 docker hub 사이트에서 검색 하는것이 훨씬 편한것 같네요
- vi편집기로 taglist 생성
- function 작성
taglist(){
if [ -n "$1" ]; then
curl -s https://registry.hub.docker.com/v1/repositories/$1/tags | grep -oP '(?<="name": ")[^"]+'
else
printf '\n%s\n\n' "Usage: ${FUNCNAME[0]} image_name"
fi
}
- function 적용
- function 사용
도커 명령어 레퍼런스
Docker CLI Reference - docker.com
#host에 존재하는 이미지 목록
docker images
docker images -a
docker images -aq
#docker hub에서 이미지 다운로드
docker pull ubuntu:latest
#실행중인 컨테이너 목록
docker ps
docker ps -a
docker ps -aq
#실행중, 종료된 컨테이너 목록
docker ps -a
#컨테이너를 새로 만들면서 실행
docker run -i -t --name hello ubuntu:latest /bin/bash
docker run -it --name hello ubuntu:latest bash
docker run -it -d --name hello ubuntu:latest /bin/bash
#실행중인 컨테이너 종료
docker stop <container name or container id>
docker stop hello
#실행중인 모든 컨테이너 종료
docker stop $(docker ps -aq)
(docker ps -aq는 모든 컨테이너의 ID를 반환)
#컨테이너 시작하기
docker start <container name or container id>
docker start hello
#컨테이너 삭제
docker rm <container name or container id>
docker rm hello
#모든 컨테이너 삭제
docker rm $(docker ps -aq)
(docker ps -aq는 모든 컨테이너의 ID를 반환)
#컨테이너 재시작하기
docker restart <container name or container id>
docker restart hello
#이미지 삭제
docker rmi <container id>
#이미지 모두 삭제
docker rmi $(docker images -aq)
(docker images -aq는 모든 이미지의 ID를 반환)
#컨테이너 생성만 실행하지 않음
다른 커맨드들에도 이런 옵션들이 있는지 아직 모르겠지만
- host, ip, port, dns, resource limit 이런 옵션들 사용할 수 있나보네
#실행중인 컨테이너에 전달
docker exec
'IT > Kubernetes' 카테고리의 다른 글
[Docker] Network - 기본 네트워크 구성 실패 및 복구 (2) | 2023.04.08 |
---|---|
[Docker] dockerfile build (with sample) (0) | 2023.04.08 |
[Docker] 도커 설치 (0) | 2023.04.08 |
[Docker] 도커 시작하며 사전 조사했던 내용 (1) | 2023.04.08 |
Kubernetes 스터디 목차 (0) | 2023.04.08 |