Docker

Docker 환경 구성 (2)

Developer trainee_J ^~^ 2023. 4. 11. 16:29

Docker Desktop을 이용하여 간단하게 Docker를 사용해보려고 한다. 

21년도 막바지에 Docker Desktop이 유료화 되면서 로컬환경에서 사용했던 Docker Desktop을 제거 한 후 

centOS환경에 수동으로 설치를 해봤는데 환경설정부터 port 문제까지 불편한점이 한두개가 아니었다. 

샘플로 airflow를 Docker위에 올리고 실행시켜봤는데 linux와 windows 두 운영체제 사이에 port를 수동으로 열어줘야만했다. Desktop만 사용하다보니 몰랐던문제.. 

그래서 pc부팅 후 centOS에서 Docker daemon을 실행 시킨 후 powershell에서 port를 열어줘야만 localhost로 airflow에 접근이 가능했고 매번 부팅때마다 해줘야 했던 번거로움이 있었다. 

 

하지만 Docker Desktop은 Windows환경에서 사용가능하게 만들어져있어서 매우 간단하다. 

 

우선 Windows 기능 끄기 켜기 에서

Linux용 Windows 하위 시스템, 가상 머신 플랫폼을 체크해준다. 

그 후 https://www.docker.com/products/docker-desktop/ 링크에서 Docker Desktop을 다운받으면 된다. 

 

다운받은 Docker Desktop Installer를 실행하여 설치 진행 

설정은 default 그대로 진행했다. 

 

설치가 완료되면 해당 창이 나온다. 튜토리얼은 스킵!

좌측 containers, images, volumes는 도커의 컨테이너(독립된 가상환경), images(컨테이너 설계도), volumes(컨테이너의 데이터 저장소)가 있다. 서버에서 수동으로 설치했을 때는 GUI가 없다보니 컨테이너나 이미지를 확인하기 위해서는 명령어로 확인해봐야한다. 

 

[컨테이너 생성]

 

이제 docker desktop을 설치했으니 docker hub에 있는 공식이미지인 hello-world 컨테이너를 생성해보겠다. 

 

우선 power shell에 진입해야한다. 기존에는 centos cli에서 진행했는데 여기서는 power shell을 사용하지 적응이 잘안된다.. 

아무튼 power shell에서 docker info 명령어로  docker 버전 부터 확인해보자 

사용중인 docker에 대한 정보들이 나오는 것을 확인할 수 있다. 컨테이너, 이미지 개수, 메모리나 CPU등등 

그 중 insecure Registries옵션은  보안 설정을 통과하는 레지스트리를 등록하는 옵션이다. 

처음 회사에서 docker를 설치했을 때 해당옵션을 건들지 않고 진행하다보니 네트워크 보안에 막혀서 애먹었던 기억이난다.  하지만 지금은 사내 개발망이아닌 local개발환경이므로 크게 신경쓰지 않아도 될 것 같다. 

 

다시 돌아와서 docker에 대한 정보를 확인했으니 컨테이너를 생성해보자 명령어는 간단하다 

power shell에 아래 명령어를 입력해주면 된다. 

# docker run <이미지 이름> 
docker run hello-world

여기서 의아한 부분이 있을 것이다. 컨테이너를 만들기 위해서는 분명 이미지가 필요하다고 했는데 

다운로드 받은적 없는 hello-world를 이미지를 사용한다고?? 

docker는 편리한게 이미지가 없을경우 Docker에서 관리하는 호스팅된 Docker 레지스트리인 docker hub에서 알아서 이미지를 다운로드 받아서 컨테이너로 생성해준다. 

Pulling from library/hello-world 문구를 보면 hub에서 이미지를 다운로드 받은걸 확인할 수 있다.

이제 desktop 에서 확인해보자 

modesk_hamilton이라는 컨테이너가 생성되었다. 컨테이너의 이름은 따로 지정해주지 않으면 랜덤으로 생성된다. 

 

[컨테이너 삭제]

방금 생성한 컨테이너를 삭제해보자.

desktop을 사용할 경우 컨테이너 목록 우측끝에있는 휴지통 버튼을 누르면 간단하게 삭제가 되고 

cli를 통해 삭제하는 방법은 아래 명령어를 사용하면된다. 

docker rm <컨테이너 이름 또는 id>

 

우선 이름과 id를 명령어로 확인해보자 

docker ps

놀랍게도 컨테이너가 조회되지 않는다. 

그 이유는 docker ps 명령어는 현재 running중인 컨테이너만 보여주기 때문 

전체 컨테이너를 조회하기 위해서는 

docker ps -a

이 명령어를 사용해야한다. 

이번에는 제대로 나온다 이제 삭제를 해보자

컨테이너가 사라진걸 확인할 수 있다.

 

docker는 이처럼 쉽고 편리하게 독립적인 가상환경을 만들 수 있고 제거할 수도 있다. 

그리고 hello-world의 이미지는 아직 존재하기 때문에 언제든지 다시 컨테이너를 생성할수도있다.

정말 편리한것같다..!

 

다음 포스팅부터는 본격적으로 airflow를 docker로 띄우고 테스트 배치를 만들어 봐야겠다~!

'Docker' 카테고리의 다른 글

Docker Swarm 이란 무엇인가?  (0) 2023.09.07
Docker 환경에서 크롤링하기(동적 웹)  (0) 2023.06.30
Docker 환경에서 크롤링하기  (0) 2023.04.16
Docker - Airflow  (0) 2023.04.12
Docker 환경 구성 (1)  (0) 2023.04.03