🧭 Dockerfile 간단한 실습
👉 1. 레지스트리에서 이미지 다운로드
사용법/예제
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
docker pull httpd
👉 2. 이미지 리스트 확인
사용법/예제
docker images [OPTIONS] [REPOSITORY[:TAG]]
docker images
👉 3. 이미지 실행 (새로운 컨테이너 생성)
사용법/예제
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
docker run httpd
- 이미지 백그라운드 실행은 docker run -d httpd
👉 4. 현재 실행중인 컨테이너 출력
사용법/예제
docker ps
👉 4-1. 멈춘 컨테이너까지 모두 출력
사용법/예제
docker ps -a
👉 5. 컨테이너를 생성할 때 이름을 지정해서 생성
사용법/예제
docker run --name secondContainer httpd
docker ps
👉 6. 실행중인 컨테이너 중지
사용법/예제
docker stop seancontainer
docker ps
👉 7. 컨테이너 실행
사용법/예제
docker start seancontainer
docker ps
👉 8. 컨테이너 로그 출력
사용법/예제
docker logs seancontainer
👉 9. 컨테이너 삭제
사용법/예제
docker rm secondContainer
- 해당 컨테이너는 중지된 상태여야함
👉 10. 이미지 삭제
사용법/예제
docker rmi httpd
- 해당 이미지가 사용되고 있지 않아야함 (stop, rm 까지)
👉 11. 컨테이너 내에서 쉘 실행
사용법/예제
docker run -d --name seancontainer httpd
docker exec -it seancontainer /bin/sh
- "seancontainer" 라는 이름의 Docker 컨테이너 내부에서 /bin/sh 쉘을 실행하게 됩니다.
- 컨테이너 내부에서 명령어를 실행하거나 파일 시스템을 조사할 수 있습니다. 상호작용 쉘 세션은 exit 명령어를 사용하여 종료할 수 있습니다.
👉 12. 컨테이너 관리
사용법/예제
docker container COMMAND
👉 12-1. 중지된 모든 컨테이너 삭제
사용법/예제
docker container prune
👉 12-2. 컨테이너의 자원 사용 현황 확인
사용법/예제
docker run -d --name seancontainer httpd
docker container stats
👉 13. 이미지 관리
사용법/예제
docker image COMMAND
👉 13-1. 사용중이지 않은 이미지 삭제
사용법/예제
docker image prune
- docker image prune 명령을 실행하면, 기본적으로 "dangling" 이미지만 삭제됩니다. "dangling" 이미지란 다른 이미지에 의해 참조되지 않는 이미지를 의미합니다. 이러한 이미지는 불필요하게 디스크 공간을 차지하므로 삭제하는 것이 좋습니다.
- 그러나 "dangling" 이미지가 아닌 이미지는 docker image prune 명령을 실행해도 삭제되지 않습니다. "httpd" 이미지는 latest 태그로 레파지토리에 저장되어 있으므로 dangling 이미지가 아닙니다. 따라서 docker image prune 명령으로 이 이미지를 삭제하지 않습니다.
👉 13-2. 이미지에 대한 자세한 정보 출력
사용법/예제
docker image inspect httpd
👉 13-3. 이미지를 참조해 새로운 이름의 이미지 생성
사용법/예제
docker image tag httpd seantest/httpd:latest
👉 14.레지스트리 로그인/로그아웃
사용법/예제
docker login
docker logout
- https://hub.docker.com/signup 에서 회원가입 후 로그인이 되어야 레지스트리에 이미지 업로드 가능
👉 15. 레지스트리에 이미지 업로드
사용법/예제
docker push seantest/httpd
- Docker Hub에서 이미지를 푸시하려면 이미지 이름에 Docker Hub 사용자 이름을 포함해야 하기 떄문에, 이미지 이름을 변경하겠습니다.
docker tag seantest/httpd seanwkim/httpd:latest
👉 16. Docker 관리
사용법/예제
docker system COMMAND
👉 16-1. 사용중이지 않은 데이터 삭제
사용법/예제
docker system prune
다음이 삭제됩니다.
- 종료된 컨테이너
- 사용중이지 않은 네트워크
- 사용중이지 않은 이미지
- 캐시
🧭 Dockerfile 활용 예제
👉 1. Dockerfile
FROM httpd:latest
COPY index.html /usr/local/apache2/htdocs/index.html
EXPOSE 80
👉 2. 이미지 만들기
docker build -t seanwkim2/httpd .
- 현재 디렉토리에서 Dockerfile을 찾아 Docker 이미지를 빌드하고, 해당 이미지에 "seanwkim2/httpd"라는 이름을 부여합니다.
👉 3. 컨테이너 실행하기
docker run -d -p 8888:80 seanwkim2/httpd
-----
ref:
https://github.com/drum-grammer/docker-pro-2312/blob/main/lecture/1st/cli.md
'DevOps > Container(Docker, Kubernetes)' 카테고리의 다른 글
Docker Compose 실습 (일단 해보면서 감 잡아보기) + 이론 (0) | 2023.12.18 |
---|