Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

끄적끄적

컨테이너 생성하기 본문

클라우드

컨테이너 생성하기

yenacathy97 2020. 7. 17. 01:57

이번에 진행한 실습은 https://subicura.com/2017/02/10/docker-guide-for-beginners-create-image-and-deploy.html 를 통해 학습한 내용을 정리하였다.

 

0. 환경

나는 연구실의 centos 서버에 ssh를 통해 접속하여 실습을 진행하였다. 

1. 컨테이너 생성

-  Redis 컨테이너 생성

redis 컨테이너 생성

Redis는 데이터를 메모리에 저장하고 조회할 수 있는 관리 시스템이다. 처음 컨테이너 생성 시 Redis 이미지가 없는 상태이기때문에 자동으로 Redis 이미지를 Pull 되었다. 이때 1234는 호스트 OS의 포트고  뒤에 6379는 Redis 컨테이너의 포트이다. 이렇게 포트를 연결하는 것을 포트 포워딩이라 한다.

-d 옵션: backgroud로 실행시키는 옵션. foreground로 실행하면 아무것도 입력할 수 없다.

-p: 포트를 연결하기 위한 옵션

 

Telnet으로 포트에 접속

Telnet 명령어를 통해 포트에 접속하였다. 키를 생성하고 키를 출력함으로써 컨테이너가 올바르게 동작하는지 확인하였다.

 

- Mysql 컨테이너 생성

Mysql 컨테이너 생성

비밀번호를 갖지않는 Mysql 컨테이너를 생성하였다. 마찬가지로 Mysql 이미지가 업기 떄문에 자동으로 이미지가 Pull되어 컨테이너를 생성하였다.

--name: 이 옶션을 통해 컨테이너 이름을 지정하였다. 이 옵션이 없으면 랜덤으로 컨테이너 이름이 지정된다. 

 

Mysql에 접속

컨테이너를 실행 시키고 mysql에 접속한다. 

옵션은 -h 호스트 명 -u DB계정명으로 mysql의 옵션이다. 위의 실습을 하기위해 mysql 클라이언트를 설치해야한다.

 

- 컨테이너 연결하기

-link옵션으로 워드프레스 컨테이너 생성

워드프레스 컨테이너를 사용하려면 mysql이 필요한데, 위에서 생성한 mysql을 이용하도록하자. --link옵션을 주게 되면 환경변수와 ip정보를 공유한다. 이를 통해 워드프레스 컨테이너는 mysql의 데이터 베이스 정보를 알 수 있다. -e 옵션은 환경변수를 주는 옵션이다. 

지정한 포트 번호와 ip를 통해 웹브라우저에 실행된 워드프레스 컨테이너 모습이다.

웹브라우저 실행

처음에 실습에서와 같이 localhost:포트번호로 접근하였는데 당연하게도 접속이 되지않았다. 왜냐면 나는 ssh를 통해 접근하고 있기 때문이었다...... 엄청난 삽질을 하고 호스트 ip를 통해 접근하여 웹브라우저를 실행할 수 있었다. 

 

2. 도커 이미지 만들기

나는 Sinatra라는 웹프레임워크를 전혀 모르지만 블로그의 실습을 따라하는 데는 무리가 없었다. 환경을 관리하는 genfile과 호스트 이름을 출력하는 웹서버인 app.rb를 작성하여 였고, 이미지를 만들기 위한 도커 파일과 함께 빌드를 통해 도커 이미지를 생성하였다. 

App.rb와 Gemfile의 내용

 

도커파일의 내용

도커 파일에는 우분투 컨테이너를 만들고, 그위에 루비를 설치하고 소스 코드를 통해 siatra서버를 4567포트로 실행한다는 내용으로 작성되어있다.

 

이제 빌드된 이미지(app)를 포트를 다르게 하여 여러 컨테이너를 생성하여보자.  

같은 이미지를 통해 생성된 컨테이너

웹브라우저에서 실행하여 동작을 확인할 수 있다.

웹브라우저에서 실행

3. 도커 Hub에 업로드하기

이제 생성한 이미지를 docker Hub에 업로드해보자. 

도커허브 로그인
도커 Hub 업로드

도커허브에 로그인 한뒤에 이미지의 태그를 나의 아이디와 일치하도록해야 업로드할 수 있다.

 

도커Hub에 등재된 모습

 

겨우 겨우 도커 컨테이너 명령어를 이해할 수준이 되어 컨테이너를 생성하는 실습을 진행하였다. 나의 목적인 쿠버네티스를 실습하기 위해서는 어떠한 주제를 선정하여 진행 해야할지가 가장 고민이다. 다음번에는 이어서 무중단 서버 자동배포 실습을 진행하도록 하겠다.  

'클라우드' 카테고리의 다른 글

쿠버네티스의 볼륨 -2  (0) 2020.08.12
쿠버네티스의볼륨 - 1  (0) 2020.08.10
도커 스웜 시작하기  (0) 2020.07.31
컨테이너  (0) 2020.07.09
서버 가상화의 분류  (0) 2020.07.03
Comments