우분투 서버 18-04.3 버전에 docker-compose를 설치해 봅니다.

 

 

 

1. docker-compose 설치하기

 

GitHub의 Compose 저장소 릴리스 페이지에서 Docker Compose 바이너리를 다운로드할 수 있습니다.

터미널에서 curl 다음 명령을 실행하여 바이너리를 다운로드해봅시다.

 

$sudo curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

 

 

** 만약 다른 버전을 사용하고 싶으시다면 "1.26.0"을 원하는 버전으로 변경해서 다운 받으시면 됩니다.

** 만약 알파인(alpine) 버전을 다운 받았다면 py-pip, python-dev, libffi-dev, openssl-dev, gcc, libc-dev, make의 추가 패키지가 필요할 수 있습니다.

 

 

20.02.14 추가 내용

 

정확한 원인은 알 수 없으나 1.25.0 버전을 위와같이 설치하면 계속 CURL 에러가 발생합니다. 만약 반드시 1.25.0 버전이 필요한 경우가 아니라면 다음 명령어를 통해 설치하는것을 추천드립니다.

 

$sudo curl -L https://github.com/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose 

 

 

 

2. 권한 부여

 

정상적으로 다운받았다면 다음 명령을 실행 해 바이너리에 권한을 부여합니다.

 

$sudo chmod +x /usr/local/bin/docker-compose

 

 

** 만약 명령이 실패한다면 docker-compose의 경로를 확인해 주세요.

 

 

 

3. 설치 확인

 

정상적으로 설치되었는지 다음 명령어로 확인해 봅니다.

 

$docker-compose --version

 

 

 

 

** 수정. 

2020.06.28 docker compose 버전을 1.2.5에서 1.2.6으로 변경.

 

 

반응형

 

Putty를 사용해 리눅스에 원격 접속을 할 때 Connection refused 에러가 발생해 이에 대한 해결책을 포스팅합니다.

 

 

 

1. 원인

 

제가 겪은, 가장 대표적인 원인은 openssh가 리눅스에 설치되어 있지 않아서입니다.

 

최소설치를 하거나 우분투 서버판을 설치할 때 openssh를 설치하는 옵션을 건너뛰면 발생합니다.

 

 

 

2. openssh 설치

 

무언가를 설치하기 전에 업데이트를 먼저 해줍시다.

 

$sudo apt-get update

 

 

업데이트가 완료되었으면 openssh를 설치합니다.

 

$sudo apt-get install openssh-server

 

 

 

 

3. 접속 확인

 

설치가 완료되었으면 윈도우에서 putty로 접속을 해봅시다.

 

 

별문제 없이 잘 동작하는 것을 확인할 수 있습니다.

반응형

시놀로지 NAS를 이용한 개인 저장소 구축.

 

시놀로지 NAS를 이용해 Private Registry를 구축해 봅니다.

 

 

1. Registry 설치.

 

시놀로지 도커를 이용해 레지스트리를 설치합니다.

 

볼륨 설정은 다음과 같이 추가해줍니다.

 

포트는 기본포트를 사용하지 않고 5234번 포트를 사용했습니다.

 

 

 

2. 도메인 및 역방향 프록시 설정

 

저는 https://hub.smoh.kr/ 주소를 사용해 보겠습니다. 미리 도메인을 준비하시거나 그냥 IP주소를 사용하셔도 무방합니다. 확인해보지는 않았으나 QuickConnect를 사용해도 될 거 같긴 합니다.

역방향 프록시는 제어판 > 응용 프로그램 > 응용 프로그램 포털에 있습니다.

 

위와 같이 역방향 프록시를 설정해 줍니다.

이후 https://hub.smoh.kr/v2/_catalog 에 접속해 봅시다. 레지스트리가 정상적이라면 "{"repositories":[]}"와 같은 메시지를 확인할 수 있습니다. 그런데 인증서가 유효하지 않다고 나오네요. 

 

이제 인증서를 등록해 줍시다. 인증서는 제어판 > 연결성 > 보안 > 인증서 탭에서 추가할 수 있습니다. 여기선 Let's encrypt에서 인증서를 발급받아 사용하겠습니다.

 

매우 간단하게 인증서를 발급 받을 수 있습니다. 이제 구성에 들어가 hub.smoh.kr의 인증서를 새로 발급한 인증서로 변경해 줍니다.

 

이후 다시 https://hub.smoh.kr/v2/_catalog 에 접속해 보면 인증서가 제대로 적용된 것을 확인할 수 있습니다.

 

 

3. HTTP연결 자동으로 리디렉트 하기

 

위의 역방향 프록시를 보면 아시겠지만 현재 http://hub.smoh.kr/에 대한 처리가 없습니다. HTTP연결을 자동으로 HTTPS로 리디렉트 해주는 기능은 없으므로 DSM의 nginx에서 처리하도록 변경해 줍니다.

 

$ cd /usr/local/etc/nginx/sites-enabled
$ touch redirect.conf

파일명은 중요하지 않습니다. 적당한 이름의 conf파일을 만든 후 다음과 같이 수정합니다.

 

server {
  listen 80;
  server_name abc.domain.com;
  location / {
    rewrite ^(.*)$ https://abc.domain.com/$1 permanent;
  }
}

 

이후 nginx 리로드 합니다.

$ sudo nginx -s reload

그리고 http://hub.smoh.kr/을 통해 접속하면 자동으로 HTTPS로 리디렉트 되는 것을 확인할 수 있습니다.

 

 

4. 이미지 업로드 해보기

 

이제 테스트 이미지를 push하고 pull 해보도록 하겠습니다. 다른 접속지에서 도커 이미지를 내려받습니다.

 

$ docker pull ubuntu
$ docker images

 

우분투 이미지를 하나 다운받았습니다. 사진에서 보이듯이 앞서 레지스트리를 설치한 서버와는 다른 서버입니다. 이제 태그를 생성합니다.

 

$ docker tag ubuntu hub.smoh.kr/ubuntu
$ docker images

 

이미지가 새로 생성된걸 확인한 후 push를 시도합니다.

 

$ docker push hub.smoh.kr/ubuntu

 

이제 https://hub.smoh.kr/v2/_catalog로 이동하면 "{"repositories":["ubuntu"]}"와 같이 업로드한 이미지가 추가된 것을 확인할 수 있습니다.

 

가장 처음 폴더를 추가했던것을 기억하시나요 ? 그 폴더로 한번 이동해 봅시다.

 

사진과 같이 /docker/registry/v2 폴더가 새로 생성되었고 그 안에 업로드한 이미지가 저장된 것을 확인할 수 있습니다.

 

 

5. 유저 인증 추가

 

업로드도 확인했지만 만약 주소가 노출된 경우 어떤 유저도 해당 레지스트리에 접근할 수 있는 문제가 있습니다. 이 문제를 해결해 봅시다.

우선 시놀로지 도커에서 생성한 레지스트리 컨테이너를 종료합니다.  그후 다음과 같이 볼륨과 환경을 수정해줍니다.

 

설정 변경 후 컨테이너를 실행시키면 auth폴더 안에 htpasswd파일이 생성된 것을 확인할 수 있습니다. 이제 유저를 추가시키도록 합니다.

 

$ cd /volume1/docker/myReg
$ sudo docker run --entrypoint htpasswd registry -Bbn testuser testpassword > auth/htpasswd

위의 명령어를 시행하면 "testuser"계정이 "testpassword"의 암호를 갖은채 생성됩니다. 계정을 생성했으니 이제 https://hub.smoh.kr/v2/_catalog 를 통해 이미지 리스트를 불러오려고 시도해봅시다.

 

아까는 볼 수 없던 로그인창이 뜹니다. 로그인을 하면 정상적으로 이미지 리스트를 확인할 수 있습니다.

 

 

6. 이미지 다운로드

 

이제 다른 서버에서 이미지를 다운로드 받아봅시다.

$ docker pull hub.smoh.kr/ubuntu

 

위와 같이 인증관련 에러를 볼 수 있습니다. 이제 로그인을 한 뒤 이미지를 다운로드 받아보겠습니다.

 

$ docker login hub.smoh.kr
$ docker pull hub.smoh.kr/ubuntu

 

로그인 이후에 정상적으로 이미지를 다운받을 수 있습니다. 로그인 이후 ~/.docker/config.json에 인증정보가 저장되어 로그아웃하기 전까지 로그인 정보가 유지됩니다.

 

 

 

 

반응형

'Programming > Linux' 카테고리의 다른 글

[Ubuntu] Docker-compose 설치하기  (0) 2020.01.14
[Putty] Network error: Connection refised  (0) 2020.01.10
[Ubuntu] Docker Private Registry  (0) 2019.05.24
[Ubuntu] Docker 설치하기  (0) 2019.05.23
[Ubuntu] Putty로 우분투 접속하기  (0) 2019.05.23

도커 개인 저장소 만들기

 

도커는 기본적으로 퍼블릭 저장소를 제공해 줍니다. 도커 허브에 로그인 하고 리포지토리를 확인하면 우측에 PUBLIC이라고 써있는걸 확인할 수 있습니다.

 

위의 이미지처럼 간단한 테스트 프로젝트면 상관없겠지만 공개되어선 안되는 프로젝트도 있죠. 다른사람은 접근할 수 없는 개인 저장소를 만들어 봅시다.

 

 

도커 허브 이용하기

 

도커 허브 서버를 이용하는 방법입니다. 별도 서버 구성이 필요하지 않으나 무료 계정에서는 하나만 사용할 수 있다는 단점이 있습니다.

Create Repository버튼을 클릭 후 Visibility옵션을 Private로 생성하면 끝입니다.

 

위와 같이 생성하면 간단하게 개인 저장소로 생성됩니다.

 

 

더 사용하고 싶으시면 돈을 내면 됩니다. Billing 메뉴의 Upgrade Plan 버튼을 클릭하면 사용할 개인저장소 개수에 따른 월별 금액이 나와있습니다.

 

 

개인 서버 이용하기

 

개인이 관리하고 있는 서버가 있거나, 다른 사유로 인해 직접 이미지들을 관리하고 싶다면 도커 레지스트리를 사용하시면 됩니다. 

도커 레지스트리(Docker Registry)는 이미지를 업로드하거나 다운로드 하는 공용/개인 저장소입니다. 도커 클라이언트를 통해 게시된 이미지를 검색해 다운로드 할 수 있습니다. 도커 허브가 제공하는 공개/개인 저장소들도 도커 레지스트리라고 할 수 있습니다.

 

우선 도커 레지스트리를 설치합니다.

$ docker pull registry:latest

$ docker images

이미지가 설치된 것을 확인한 후 컨테이너를 실행시킵니다.

$ docker run -name private-reg -d -p 5000:5000 registry:latest

각각의 명령어가 의미하는바는 별도로 언급하지 않겠습니다.

 

컨테이너가 제대로 동작하는지 확인해봅니다.

$ docker ps -l

레지스트리도 한번 확인해봅니다.

$ curl -X GET http://0.0.0.0:5000/v2/_catalog

정상적으로 응답이 오는것을 확인할 수 있습니다. 현재 생성한 리포지토리가 없으므로 공백이 리턴됩니다.

별도의 설정파일을 건드리지 않는 이상 로컬에 데이터를 저장합니다. 이에 대한 내용은 별도로 포스팅할 예정이며 공식 홈페이지를 참조해 주시기 바랍니다.

이제 레지스트리에 올릴 이미지를 준비합니다.

$ docker tag mintkiwi/test-image:0.1 0.0.0.0:5000/private-test-image

새로운 이미지가 제대로 생겼는지 확인 하고 push를 해봅니다.

$ docker push 0.0.0.0:5000/private-test-image

실패합니다. 연결이 거부되었다고 나옵니다. 레지스트리의 주소를 insecure-registries에 추가해줍시다. /etc/docker/daemon.json 파일을 다음과 같이 생성합니다.

Docker 17.x버전 이후부터는 Insecure registry를 수정하기 위해 daemon.json파일을 사용합니다. 이전버전은 /etc/init.d/docker파일의 DOCKER_OPTS를 수정해 주세요.

도커를 재시작하고 Insecure registries가 변경된 것을 확인합니다.

$ suto service docker restart
$ docker info

도커를 재시작했으므로 컨테이너를 실행하는것을 잊지마세요. 컨테이너를 실행하고 레지스트리에 push해봅시다.

$ docker push 0.0.0.0:5000/private-test-image:0.1

이제 정상적으로 push되는것을 확인할 수 있습니다. push완료 후에 레지스트리도 한번 조회해 보세요.

$ curl -X GET http://0.0.0.0:5000/v2/_catalog

제대로 업로드 된 것을 확인할 수 있습니다.

이제 업로드 한 이미지를 다운받아 볼 차례입니다. 기존 이미지를 지우고 pull을 통해 이미지를 다운받습니다.

$ docker rmi -f ####
$ docker pull 0.0.0.0:5000/private-test-image
$ docker images

정상적으로 다운로드 된 것을 확인할 수 있습니다.

반응형

우분투에서 도커 설치하기

 

우분투에서 도커CE버전을 설치해 봅니다.

우분투는 Ubuntu-server-18.04.2 버전을 사용했습니다.

 

 

 

쉘 스크립트를 이용한 도커 설치

 

2020.04.14. 추가.

 

마침 도커를 다시 설치할 일이 생겼습니다. 기존에 포스트를 보니 여러 복잡한 과정을 거쳐서 설치를 하도록 안내되어 있어 간단한 설치방법을 알려드립니다.

 

아래의 명령어를 실행시키면 바로 도커가 설치됩니다.

 

curl -fsSL https://get.docker.com/ | sudo sh

 

우분투 버전은 본 글 그대로인 18.04.2버전을 사용하였습니다.

 

 

 

도커 저장소 사용을 위한 패키지 설치

 

도커CE를 설치하기 전에 도커 저장소를 설정해야 합니다. 저장소 설정전에 필요한 패키지들을 설치합니다.

$sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

위의 명령어를 통해 필요한 패키지들을 설치합니다.

 

 

도커 저장소 설정

 

도커의 공식 GPG키를 추가합니다.

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

 

정상적으로 처리되었는지 핑거프린트를 확인해 봅니다.

전체 핑거프린트는 다음과 같습니다: 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88

여기서 마지막 8자리를 이용해 핑거프린트를 확인합니다.

$sudo apt-key fingerprint 0EBFCD88

 

핑거프린트를 확인 후 도커 저장소를 설정합니다

$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

 

 

저장소 설정 후 apt-get update를 잊지 마세요.

 

도커 CE 설치

 

$ sudo apt-get install docker-ce docker-ce-cli containerd.io

위의 명령어를 통해 도커 CE를 설치합니다.

 

설치 완료후 버전을 확인해 봅니다.

$ docker --version

 

반응형

Putty로 우분투 접속하기

 

Putty를 이용해 우분투에 접속해 봅니다.

 

 

우분투 설치하기

 

우분투 홈페이지에서 iso파일을 받아 우분투를 설치합니다.

본 글에선 Ubuntu Server 18.04.2 버전을 사용했습니다.

 

 

SSH 설치하기

 

> sudo apt-get install ssh

위의 명령어를 통해 ssh를 설치합니다.

>sudo apt-get install openssh-server

일반적으로 ssh를 설치하면 자동으로 설치됩니다. 혹시모르니 확인해줍니다.

 

SSH 재시작

 

>sudo /etc/init.d/ssh restart

위의 명령어를 통해 ssh를 재시작합니다.

 

Putty 접속

 

>ifconfig

우분투에서 위의 명령어를 통해 ip주소를 확인해 둔다.

 

Putty를 켜고 확인한 IP주소를 입력합니다.

 

ID와 Password를 입력하고 접속을 확인합니다.

반응형

'Programming > Linux' 카테고리의 다른 글

[Putty] Network error: Connection refised  (0) 2020.01.10
Synology Nas를 이용한 Private Registry 구축  (4) 2019.05.27
[Ubuntu] Docker Private Registry  (0) 2019.05.24
[Ubuntu] Docker 설치하기  (0) 2019.05.23
[Ubunto] IP주소 확인  (0) 2017.09.28

* Ubunto Ver.17.04



1. Open terminal


2. ip addr show

smoh@smoh-VirtualBox:~$ ip addr show



반응형

+ Recent posts