Docker Desktop이란?
- Docker 플랫폼의 데스크톱 버전
- GUI (그래픽 사용자 인터페이스) 제공하여 Docker 컨테이너를 쉽게 생성, 실행, 관리 가능
Docker Desktop 제공 기능
컨테이너 생성 및 실행 | Docker Hub에서 이미지를 다운로드하거나 직접 빌드하여 컨테이너 생성 및 실행 가능 |
컨테이너 관리 | 컨테이너 시작, 중지, 재시작, 삭제 가능 컨테이너의 상태 모니터링 및 로그 확인 가능 |
컨테이너 네트워킹 | 컨테이너 간 네트워크 연결 가능 |
컨테이너 보안 | 컨테이너의 보안 강화 가능 |
Docker Desktop 설치
1. 아래 사이트에 접속
https://docs.docker.com/get-docker/
설치하려는 운영체제에 맞는 버전을 선택하여 다운로드 진행
2. 설치파일 실행
설치된 파일을 실행시키면
이렇게 진행되며 최종적으로 설치가 완료된다.
3. 설치 확인 및 실행
Windows 기준으로,
Powershell을 열어 docker version이라는 명령어를 실행시킨다.
정상적으로 설치가 되었다면 이런 식으로 클라이언트와 서버 관련 정보가 뜨는 것을 확인할 수 있다.
설치하는 과정에서 오류가 발생해서 해결했는데 그 과정은
https://jinnycoding.tistory.com/83
여기에 기록해두었다.
Image와 Comtainer 관계
위 그림과 같이 Docker는
1) Docker Hub에서 pull 명령어를 통해 이미지를 가져오고,
2) run 명령어로 이미지를 사용해 컨테이너를 실행한다.
컨테이너 실행
1. CLI
1) Nginx 이미지 불러오기
Powershell에서
docker pull nginx:latest
명령어를 실행시킨다.
해당 명령어는 Docker Hub에서 최신 버전의 Nginx 이미지를 가져온다.
특정 버전의 이미지를 다운로드하기 위해서는
docker pull nginx:1.25.3
이런 식으로 콜론 뒤에 버전을 입력하면 된다.
이미지가 잘 설치되었는지 확인하기 위해서는
docker images
명령어로 받은 이미지 목록을 확인할 수 있다.
2) Docker 컨테이너 실행
docker run -d --name nginx-ws -it -p 80:80 nginx:latest
명령어를 통해 Docker 컨테이너를 실행시킬 수 있다.
자세히 알아보자면
-p 80:80 | 호스트의 80번 포트로 유입되는 트래픽을 Container의 80 포트로 전달되도록 함 Nginx의 기본 설정 포트 : 80 |
-d (daemon) | 컨테이너를 백그라운드에서 실행하도록 함 |
--name | 컨테이너 이름을 설정 (위 명령어에서는 nginx -ws 라는 이름으로 설정) |
이렇게 나눠어 볼 수 있다.
docker ps 명령어를 입력해 실행 중인 컨테이너를 확인할 수 있다.
지정한 이름과 포트 등이 지정된 것이 보인다.
3) 브라우저 접속
브라우저에 80번 포트로 접속하면 실행 중인 컨테이너를 확인해볼 수 있다.
4) 컨테이너 중지 및 삭제
docker stop {컨테이너 이름} 명령어로 실행중인 컨테이너를 중지,
docker rm {컨테이너 이름} 컨테이너를 삭제할 수 있다.
2. Docker Desktop
1) Docker Hub에서 MySQL 이미지 가져오기
docker pull mysql:latest
명령어를 실행시키면 마찬가지로 설치가 된다.
2) 설치한 이미지 확인
Docker Desktop에서 좌측 두 번째 탭 Images 탭으로 이동 시,
위에서 CLI로 설치한 nginx와 방금 설치한 mysql 이미지를 확인할 수 있다.
3) 컨테이너 실행
docker run --name mysql-db -e MYSQL_ROOT_PASSWORD=1234 mysql
위 명령어로 컨테이너를 실행시킨다.
mysql-db를 이름으로 지정하고,
-e 옵션으로 컨테이너의 비밀번호 값을 지정해 주었다.
이때, MYSQL_ROOT_PASSWORD 환경 변수로 암호를 설정하지 않을 시 컨테이너를 시작하지 못한다고 한다.
Docker Desktop의 Container 탭에서 컨테이너가 잘 실행되고 있는 것을 확인할 수 있다.
4) Exec 탭
mysql-db 컨테이너 클릭 후 Exec 탭으로 이동한다.
Exec 탭은 실행 중인 컨테이너에 명령을 실행하는 터미널이다.
mysql -u root -p 명령어 실행 후 비밀번호를 입력하면 MySQL에 접속된다.
Docker 명령어 정리
docker version | Docker 클라이언트 및 서버 버전 표시 |
docker info | Docker 설치 상태 및 정보 표시 |
docker help | Docker 명령어 도움말 표시 |
docker pull | Docker Hub에서 이미지 pull |
docker push | Docker Hub에 이미지 push |
docker images | Docker 이미지 목록 표시 |
docker search | Docker Hub에서 이미지 검색 |
docker run | 이미지를 사용해 컨테이너 실행 |
docker stop | 컨테이너 중지 |
docker start | 중지된 컨테이너를시작 |
docker restart | 실행 중인 컨테이너를 재시작 |
docker ps | 실행 중인 컨테이너 목록을 표시 (-a 옵션: 모든 컨테이너 목록 표시) |
docker logs | 컨테이너 로그 표시 |
docker kill | 컨테이너 강제종료 |
docker rm | 컨테이너 삭제 |
'Docker' 카테고리의 다른 글
[Docker] Docker 배포_Spring Boot 프로젝트 (코딩온) (0) | 2024.01.02 |
---|---|
[Docker] Docker 배포_React 프로젝트 (코딩온) (1) | 2023.12.30 |
[Docker] Dockerfile에 대해 (코딩온) (1) | 2023.12.28 |
[Docker] Docker Desktop - Unexpected WSL error 및 해결 (코딩온) (0) | 2023.12.24 |
[Docker] Docker란? (코딩온) (1) | 2023.12.23 |