1. Docker 리포지토리 추가
Docker를 설치하기 위해 공식 Docker 리포지토리를 추가합니다.
# yum install -y yum-utils
# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
2. Docker 패키지 설치
# dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
3. 도커 시작
# systemctl start docker
# systemctl enable docker
버전 확인
[root@docker-tet ~]# docker -v
Docker version 24.0.6, build ed223bc
도커 환경 초기화
도커 컨테이너 전체 삭제
# docker container rm -f $(docker container ls -aq)
이미지가 차지한 디스크 용량 회수
# docker image rm -f $(docker image ls -f reference='diamol/*' -q)
컨테이너 상세 정보 표출
# docker container inspect (container ID)
컨테이너에서 수집된 모든 로그 출력
# docker container logs (container ID)
컨테이너의 리소스 사용량 확인
# docker container stats (container ID)
Dockerfile
FROM : 이미지 지정
ENV : 환경 변수 값 지정을 위한 인스트럭션 [key]="[value]" 형식
WORKDIR : 컨테이너 이미지 파일 시스템에 디렉터리를 만들고, 작업 디렉터리로 지정
COPY : 로컬 파일 시스템의 파일 혹은 디렉터리를 컨테이너 이미지로 복사 [원본경로] [복사경로]
CMD : 도커가 이미지로부터 컨테이너를 실행했을 때 실행할 명령을 지
Dockerfile 의 인스트럭션은 잘 수정하지 않는 인스트럭션이 앞으로 오고, 자주 수정되는 인스트럭션이 뒤에 오도록 배치하는 것이 효율적이다.
이미지 저장에 실제 사용된 디스크 용량 확인
# docker system df
컨테이너 간 통신에 사용되는 도커 네트워크 생성
# docker network create (name)
docker 로 웹 서버 설치 하기
# docker pull nginx:latest (debian os)
실행
# docker run -d -p 8080:80 --name nginx-exposed --restart always nginx
> -p (publish) : 외부에서 호스트로 보낸 요청을 컨테이너 내부로 전달하는 옵션
-p <요청 받을 호스트 포트>:<연결할 컨테이너 포트>
> -d 옵션(detach) : 컨테이너를 백그라운드로 실행한다. shell을 빠져나와도 컨테이너 실행 유지
> --restart always : 컨테이너 자동 시작
접속
# docker exec -it nginx /bin/bash