지난시간까지 구글 클라우드에 가상서버를 생성하고, 네트워크 설정 및 방화벽 규칙을 추가 했습니다.
구글 클라우드에 생성한 가상서버에 ssh로 접속해서 Docker를 설치하고 연습으로 Docker hellow world를 실행해보겠습니다. 그리고 Docker로 nginx를 설치하고 간단한 웹페이지를 띄워보겠습니다.
![도커 설치하기](https://vdi.co.kr/wp-content/uploads/2023/05/스크린샷-2023-01-28-23.20.51-768x637-1.png)
우선 구글 클라우드에 로그인 후 콘솔 화면으로 이동해주세요.
인스턴스 목록에서 지난시간에 생성한 가상머신에 ssh로 접속해보겠습니다.
1. 가상머신에 SSH 접속하기
SSH란? 시큐어 셸은 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해 주는 응용 프로그램 또는 그 프로토콜을 의미 합니다.
접속을 원하는 가상머신의 오른쪽에 있는 SSH 버튼을 클릭 합니다.
![도커 설치하는 방법](https://vdi.co.kr/wp-content/uploads/2023/05/스크린샷-2023-01-28-19.16.27.png)
그럼 새창이 뜨면서 가상머신에 SSH 접속이 됩니다.
일반적으로 윈도우의 GUI(Graphic User Interface) 환경에 익숙해서 CLI(Command Line Interface) 화면이 익숙하지 않을 수 있지만, 기본적인 명령어와 구글에서 명령어를 찾아가면서 하면 어렵지 않게 사용이 가능하실꺼에요.
예전에 MS-DOS를 주로 사용하셨다면 괜찮을듯 합니다.
![도커 설치하는 방법](https://vdi.co.kr/wp-content/uploads/2023/05/스크린샷-2023-01-28-21.23.25.png)
2. 우분투(Ubuntu에 도커(Docker) 설치하기
오래된 버전 삭제하기
혹시나 오래된 버전이 설치되어 있다면 최신 버전 설치를 위해 삭제 합니다.
$ sudo apt-get remove docker docker-engine docker.io containerd runc
SSH Configrepository 설정
apt package index를 업데이트 하고 https를 통해 repository를 사용하기 위해 package를 설치 합니다.
$ sudo apt-get update
SSH Config$ sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
SSH ConfigDocker의 Official GPC Key를 등록 해줍니다.
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
SSH ConfigStable repository를 등록 합니다.
$ echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
SSH ConfigDocker Engine 설치하기
설치되어 있는 패키지를 우선 업데이트 합니다.
$ sudo apt-get updates
SSH ConfigDocker Engine을 설치 합니다.
설치 과정에서 계속 진행할꺼냐는 질문에는 y 키를 입력해서 계속 진행하면 됩니다.
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
SSH Config![도커 설치하는 방법](https://vdi.co.kr/wp-content/uploads/2023/05/스크린샷-2023-01-28-22.19.54.png)
Docker 설치가 완료되면 정상적으로 설치가 되었는지 Docker 버전을 확인 합니다.
$ docker --version
Dockerfile![도커 설치하는 방법](https://vdi.co.kr/wp-content/uploads/2023/05/스크린샷-2023-01-28-22.24.20.png)
프로그래밍을 처음 배우면 보통 헬로 월드를 화면에 출력하는걸 제일 처음으로 하는데요, Docker를 이용해서 헬로 월드를 화면에 출력해보겠습니다.
$ sudo docker run hello-world
Dockerfile그럼 잠시 뭔가 다운로드 후 화면에 Hello from Docker! 라는 내용을 확인 할 수 있습니다.
![도커 설치하는 방법](https://vdi.co.kr/wp-content/uploads/2023/05/스크린샷-2023-01-28-22.28.04.png)
3. 우분투(Ubuntu에 도커(Docker) Compose 설치하기
Docker compose는 여러개의 Docker container들을 정의하고 실행할 수 있도록 도와주는 툴 입니다. yaml 파일을 작성해서 어플리케이션 서비스를 정의하고 한번에 여러개의 Docker container를 생성하고 실행 할 수 있습니다.
$ sudo apt-get update
SSH Config$ sudo apt-get install docker-compose-plugin
SSH Config설치가 완료되면 정상적으로 설치 되었는지 아래 명령어로 확인 합니다.
버전이 정상적으로 보이면 잘 설치된 것입니다.
$ docker compose version
Dockerfile![도커 설치하는 방법](https://vdi.co.kr/wp-content/uploads/2023/05/스크린샷-2023-01-28-22.34.10.png)
4. sudo 명령어 없이 Docker 실행하기
앞에서 docker run hello-world를 실행 할때 앞에 sudo 명령어를 붙여서 입력 했었는데요, sudo 없이 docker run hello-world 를 실행하면 Permission denied 라는 에러가 발생 합니다.
![도커 설치하는 방법](https://vdi.co.kr/wp-content/uploads/2023/05/스크린샷-2023-01-28-22.40.30.png)
아래 명령어를 입력하면 sudo 를 붙이지 않아도 Docker를 실행 할 수 있습니다.
리눅스는 대/소문자를 구분하니 대소문자에 유의해서 명령어를 입력해주세요.
- -a 는 사용자를 추가하는 명령
- -G 는 그룹 옵션
- $USER 는 현재 접속중인 사용자
$ sudo usermod -aG docker $USER
SSH Config새로 등록된 그룹은 로그아웃 후 재 로그인 해야 반영되니 logout 명령으로 로그아웃 후 다시 ssh를 눌러 접속 합니다.
$ logout
SSH Configssh로 다시 접속 후 sudo 를 빼고 docker run hello-world 를 실행하면 잘 실행되는것을 확인 할 수 있습니다.
$ sudo docker run hello-world
Dockerfile![도커 설치하는 방법](https://vdi.co.kr/wp-content/uploads/2023/05/스크린샷-2023-01-28-22.54.08.png)
마지막으로 Docker container를 이용해서 nginx를 띄워보는 작업을 해보겠습니다.
5. Docker container로 Nginx 웹페이지 띄우기
Nginx Docker container 실행하기
아래의 코드를 입력하면 nginx에 필요한 이미지를 다운로드 받고 Docker container 생성합니다.
- –name mynginx mynginx라는 이름으로 Docker container 생성
- -d 백그라운드에서 실행
- -p 80:80 호스트의 80포트와 nginx container의 80 포트를 연결
- nginx nginx의 이미지 이름
$ docker run --name mynginx -d -p 80:80 nginx
Dockerfile실행중인 Docker container 확인하기
현재 실행되고 Docker container를 확인하려면 아래 명령어를 입력합니다.
- CONTAINER ID : Docker container의 고유 ID 입니다.
- IMAGE : Docker container가 어떤 이미지를 기반으로 생성 되었는지 나타냅니다. 위에서 nginx 이미지를 사용했기에 nginx라고 나옵니다.
- COMMAND : Docker container의 명령어 진입점 입니다.
- CREATED : Docker container가 생성된 시점 입니다. 6분전에 생성 되었습니다.
- STATUS : Docker container가 실행중이며 6분전에 실행 되었습니다.
- PORTS : 모든 IP가 호스트 80 포트로 접속되면 Docker container 80 포트로 포워딩 해줍니다.
- NAMES : 위에서 지정한 Docker container 이름 입니다.
$ docker container ps
Dockerfile![도커 설치하는 방법](https://vdi.co.kr/wp-content/uploads/2023/05/스크린샷-2023-01-28-23.07.22.png)
브라우저에서 웹서버 접속하기
예를들어 외부 IP가 34.63.23.210 이라고 되어 있으면 http://34.63.23.210 으로 입력하면 됩니다.
![도커 설치하는 방법](https://vdi.co.kr/wp-content/uploads/2023/05/스크린샷-2023-01-28-23.15.40.png)
다음 시간에는 Docker compose 를 활용해서 워드프레스를 생성하고 접속해보도록 하겠습니다.
Pingback: [04.워드프레스] Docker로 워드프레스 설치하기 - IT 인프라 학교
Pingback: [02.워드프레스] 가상서버 네트워크 설정하기 - IT 인프라 학교