윈도우 환경에서 앨리어스 사용(Alias in Windows)

기타|2021. 5. 24. 19:13

드롭박스를 사용해 alias를 동기화한다고 가정하고 진행한다.

 

%USERPROFILE%\Dropbox\alias-script 폴더를 만들고 PATH에 추가한다.

 

%USERPROFILE%\Dropbox\alias-script 폴더에 alias.bat 파일을 만들고 다음 코드를 넣는다.

 

@echo off
echo.
for /f "tokens=1,* delims= " %%a in ("%*") do set ALL_BUT_FIRST=%%b
echo @echo off > %USERPROFILE%\Dropbox\alias-script\%1.bat
echo echo. >> %USERPROFILE%\Dropbox\alias-script\%1.bat
echo %ALL_BUT_FIRST% %%* >> %USERPROFILE%\Dropbox\alias-script\%1.bat
echo Created alias for %1=%ALL_BUT_FIRST%

 

다음은 사용 예다.

 

새 명령 프롬프트를 실행한다. 새 명령 프롬프트를 사용해야 위에서 추가한 PATH가 적용된다.

 

kubectl을 k로 줄여서 사용하기 위해 다음 커맨드를 실행한다. 리눅스와는 다르게 등호(=) 사용하지 않는다는 점에 유의한다.

alias k kubectl


실행 결과는 다음 이미지를 참고한다.

 

alias k kubectl

 

도움이 됐다면 공감() 버튼을 클릭해 주세요. 감사합니다.

 

태그 : alias, Windows

댓글()

윈도우 터미널(Windows Terminal): 창(pane) 분할 단축키

Developer Tools|2021. 5. 13. 19:08

Alt + Shift + D: 복제 및 분할(긴 축 기준)

Alt + Shift + +: 세로 분할

Alt + Shift + -: 가로 분할

Alt + Shift + 방향 키: 창(pane) 크기 조정

Alt + 방향 키: 창 간 이동

Ctrl + Shift + W 창 종료

댓글()

유용한 쿠버네티스 커맨드 모음(Kubernetes commands)

Kubernetes|2021. 5. 7. 18:51

YAML 파일을 사용해 리소스 생성

kubectl apply -f prometheus-configmap.yaml

 

YAML 파일을 사용해 기존 리소스 업데이트(패치)

kubectl create -f prometheus-configmap-update.yaml -o yaml  --dry-run | kubectl apply -f -

 

디플로이먼트의 롤아웃 상태 확인 및 대기

kubectl rollout status deployment/prometheus-deployment -n monitoring

 

레이블을 사용해 파드 로그 확인(마지막 20줄)

kubectl logs --tail=20 -n monitoring -l app=hey

 

전체 네임스페이스(namespace)에서 리소스(디플로이먼트) 조회

kubectl get deploy --all-namespaces

 

전체 파드의 환경 변수 조회(시크릿, 컨피그맵 기반의 환경 변수는 관련 리소스 이름과 키만 알려준다)

kubectl set env pods --all --list -n monitoring

 

전체 파드의 환경 변수 조회(시크릿, 컨피그맵 기반의 환경 변수를 디코딩해 보여준다)

kubectl set env pods --all --list --resolve=true -n monitoring

 

도움이 됐다면 공감(♡) 버튼을 클릭해 주세요. 감사합니다.

댓글()

윈도우 터미널(Windows Terminal): 화면 스크롤 단축키

Developer Tools|2021. 4. 20. 08:45

Ctrl + Shift + 위쪽 화살표: 한 줄 위로 이동

Ctrl + Shift + 아래쪽 화살표: 한 줄 아래로 이동

Ctrl + Shift + Page Up: 한 화면 위로 이동

Ctrl + Shift + Page Down: 한 화면 아래로 이동

Ctrl + Shift + Home: 화면 맨위로 이동

Ctrl + Shift + End: 화면 맨아래로 이동

 

참고: docs.microsoft.com/ko-kr/windows/terminal/

 

Windows 터미널에 대한 개요

Windows 터미널 및 명령줄 워크플로를 개선할 수 있는 방법에 대해 알아봅니다.

docs.microsoft.com

 

도움이 됐다면 공감(♡) 버튼을 클릭해 주세요. 감사합니다.

댓글()

WSL 2: 리눅스 파일 접근 방법(Accesing Linux files)

기타|2021. 4. 19. 08:50

윈도우에서 WSL 2 리눅스 배포(distrobution)의 파일에 접근하려면 \\wsl$ 경로를 사용한다.

파일 탐색기에서 \\wsl$에 접근하면 실행 중인 리눅스 배포의 목록을 볼 수 있다.

 

배포 목록(\\wsl$)

 

원하는 배포 폴더에 접근하면 리눅스 폴더/파일 목록이 나타나며 보거나 수정할 수 있다.

실행 중인 리눅스 배포의 파일에만 접근할 수 있다는 점에 유의한다. 다음 동영상(Animated GIF 이미지)을 참고한다.

WSL 2: 리눅스 파일 접근 방법

 

도움이 됐다면 공감(♡) 버튼을 클릭해 주세요. 감사합니다.

태그 : wsl$, WSL2

댓글()

WSL 2: 배포 목록 확인 및 종료 방법

기타|2021. 4. 16. 17:15

배포 목록 확인

// 전체 배포 목록
PS C:\Users\daniel> wsl --list --all
Linux용 Windows 하위 시스템 배포:
Ubuntu-18.04(기본값)
docker-desktop
docker-desktop-data

// 실행 중인 배포 목록 
PS C:\Users\daniel> wsl --list --running
Linux용 Windows 하위 시스템 배포:
Ubuntu-18.04(기본값)

 

특정 배포 종료

// Ubuntu-18.04 배포 종료
PS C:\Users\daniel> wsl --terminate ubuntu-18.04
// 실행 중인 배포 확인
PS C:\Users\daniel> wsl --list --running
실행 중인 배포가 없습니다.

 

모든 배포 및 WSL 2 가상 머신 종료

PS C:\Users\daniel> wsl --shutdown

 

커맨드 실행 스크린샷

WSL 2 커맨드 실행

 

도움이 됐다면 공감(♡) 버튼을 클릭해 주세요. 감사합니다.

댓글()

트렐로 날짜/시간 변수 형식(Trello Date and Time format variables)

기타|2021. 3. 21. 09:23

트렐로 버틀러 커맨드(Calendar 등)를 정의할 때 날짜/시간 입력이 필요하다면 다음 문서를 참고합니다.

help.trello.com/article/1159-arithmetic-in-date-variables

 

Arithmetic and Formatting in Date Variables - Trello Help

Arithmetic and Formatting in Date Variables Date variables can be manipulated in order to move the date, or to change the way the date is displayed. For example, when using the value of a variable like  {cardduedate} , you may want to shift the value by

help.trello.com

 

도움이 됐다면 공감() 버튼을 클릭해 주세요. 감사합니다.

댓글()

윈도우 10 홈 버전에 도커(Docker) 설치(with WSL 2)

설치&설정|2021. 2. 27. 11:46

개요

이 글에서는 WSL 2 기반으로 도커를 설치해 사용하는 방법을 안내합니다. 

 

예전에는 Windows 10 Home 버전에서 도커를 사용하려면 Docker Toolbox를 설치해야 했습니다. 하지만 Docker Toolbox는 여러 가지 버그 때문에 사용이 어려웠고 최근 Deprecated 됐습니다. 따라서 Windows 10 Home 버전을 사용하는 분에게는 WSL 2 기반의 도커 사용을 권장합니다. 버추얼박스(VirtualBox)를 별도로 사용해야 하는 Windows 10 Pro 버전 사용자에게도 권장하고 싶습니다.

 

Windows 10 Pro, Education, Enterprise 버전 사용자는 다음 링크의 가이드를 참고하면 Hyper-V 기반으로 도커를 설치할 수 있습니다. 이 방식으로 도커를 설치하면 버추얼박스를 사용할 수 없다는 점에 유의하세요.

Install Docker Desktop on Windows

 

가상화 지원 확인

CPU가 가상화를 지원해야 도커를 설치할 수 있습니다. 작업 관리자를 실행한 후 가상화(Virtualization)가 활성화돼 있는지 확인하세요.

 

가상화를 사용하고 있지 않다면 바이오스(BIOS)에서 가상화 지원 기능을 활성화해야 합니다.

 

WSL 2 설치

Windows Home 버전은 Hyper-V를 지원하지 않기 때문에 WSL 2(Windows Subsystem for Linux 2)를 설치해야 합니다.

 

다음 링크의 설치 방법을 참고해 WSL 2를 설치하세요.

WSL 2(Windows Subsystem for Linux 2) 설치

 

도커 설치

다음 링크로 이동해 Docker Desktop 인스톨러를 다운로드합니다. 참고로 32-bit 버전 윈도우에는 도커를 설치할 수 없습니다.

 

Docker Desktop for Windows

 

Docker Desktop for Windows - Docker Hub

Docker Desktop for Windows Docker Desktop for Windows is Docker designed to run on Windows 10. It is a native Windows application that provides an easy-to-use development environment for building, shipping, and running dockerized apps. Docker Desktop for W

hub.docker.com

 

인스톨러를 더블 클릭해 도커 데스크톱(Docker Desktop for Windows)을 설치를 시작합니다. 설치가 완료되면 "Close and restart" 버튼을 클릭해 설치를 완료하고 컴퓨터를 다시 시작합니다.

 

컴퓨터가 시작되면 도커 데스크톱이 자동으로 실행됩니다. 실행되지 않으면 시작 메뉴에서 Docker Desktop을 찾아서 실행합니다.

 

도커 데스크톱 실행 화면에서 "Start" 버튼을 클릭하면 간단한 실습(Tutorial)이 실행됩니다. 실습을 원하지 않으면 "Skip tutorial"을 클릭합니다.

 

이제 커맨드 프롬프트나 Git Bash에서 docker version, docker images 등의 커맨드를 실행해 도커를 사용할 수 있습니다.

 

참고

Install Docker Desktop on Windows Home

 

도움이 됐다면 공감(♡) 버튼을 클릭해 주세요. 감사합니다.

태그 : docker, Windows, WSL2

댓글()
  1. GHGH 2021.05.24 01:41 댓글주소  수정/삭제  댓글쓰기

    안녕하세요. 친절한 설명 정말 감사합니다!
    다만 설명해주신대로 WSL2설치까지 모두 마쳤고, WINDOW 버전이 10 HOME 이고 OS 빌드도 18363.900 (버전 1909) 인데도, 도커 설치를 하려니 아래와 같은 메시지가 뜨면서 자꾸 설치에 실패하네요 ㅠ

    installation failed: one prerequisite is not fullfilled
    docker desktop requires windows 10 pro/enterprise (17134+) or windows 10 home (18362.1040+)

    빌드는 메시지에 나온 버전 이상인데 왜 설치가 안되는지 도무지 모르겠습니다 ㅠ
    혹시 관련하여 해결책을 알고 계실까요?

    • BlogIcon 자바월드 2021.05.24 15:47 댓글주소  수정/삭제

      혹시 윈도우가 32-bit 버전인가요?
      도커는 64-bit 버전에만 설치가 가능합니다.

      그리고 혹시 모르니 컴퓨터를 다시 시작한 다음에 다시 한 번 시도해 보세요.

WSL 2(Windows Subsystem for Linux 2) 설치

설치&설정|2020. 12. 13. 16:30

1. 명령 프롬프트(cmd)를 관리자 권한으로 실행합니다.

 

2. 명령 프롬프트에서 ver 커맨드를 실행해 Build 18362(버전 1903) 이상의 Windows 10을 사용하고 있는지 확인합니다. 다음 예에선 빌드 18363입니다. 빌드 18362 이상이 아니라면 Windows를 업데이트합니다.

> ver

Microsoft Windows [Version 10.0.18363.1198]

 

3. 명령 프롬프트에서 다음 커맨드를 실행해 "Linux용 Windows 하위 시스템" 옵션을 활성화합니다.

> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

배포 이미지 서비스 및 관리 도구
버전: 10.0.18362.1139

이미지 버전: 10.0.18363.1198

기능을 사용하도록 설정하는 중
[==========================100.0%==========================]
작업을 완료했습니다.

 

4. 컴퓨터를 다시 시작합니다.

 

5. x64 머신용 최신 WSL2 Linux 커널 업데이트 패키지를 다운로드 및 설치합니다.

 

6. 프롬프트에서 다음 커맨드를 실행해 WSL 2를 기본 버전으로 설정합니다.

C:\WINDOWS\system32>wsl --set-default-version 2
WSL 2와의 주요 차이점에 대한 자세한 내용은 https://aka.ms/wsl2를 참조하세요

 

7. Microsoft 스토어를 열고 원하는 리눅스 배포본을 설치합니다. Ubuntu 이외의 다른 배포본을 원한다면 Microsoft 스토어의 검색 기능을 사용해 찾습니다.

 

8. 설치가 완료되면 "시작" 버튼을 클릭해 Ubuntu 배포본을 실행합니다. 몇 분 정도 설치를 기다려야 합니다.

 

9. Ubuntu 창이 뜨면 먼저 리눅스 계정을 생성해야 합니다. 원하는 UNIX username과 UNIX password를 입력하면 됩니다.

Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: daniel
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Installation successful!
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

daniel@javaworld:~$

이 예에선 username으로 daniel을 입력하고 password를 두 번 입력했습니다. 보안상 입력 중인 password는 안 보입니다.

 

참고: Windows 10에 Linux용 Windows 하위 시스템 설치 가이드

 

 

도움이 됐다면 공감() 버튼을 클릭해 주세요. 감사합니다.

태그 : docker, Linux, Windows, WSL

댓글()

Audacity - FFmpeg 라이브러리 추가

기타|2020. 5. 9. 09:50

Audacity(오데시티)를 사용하다보면 FFmpeg 라이브러리(avformat-55.dll)를 요구할 때가 있다. 나는 AAC 파일을 편집하려고 하니까 오류가 발생했다.

FFmpeg 라이브러리는 lame.buanzo.org/#lamewindl에서 다운로드할 수 있다. ffmpeg-win-2.2.2.zip 파일을 다운로드하고 적당한 곳에 압축을 풀면 된다.

Audacity의 편집 > 환경설정 메뉴를 클릭한 후, 다시 라이브러리 메뉴에서 [위치 찾기] 버튼을 클릭하고 FFmpeg를 설치한 폴더에서 avformat-55.dll을 선택하면 된다.

 

도움이 됐다면 공감 버튼을 클릭해 주세요. 감사합니다.

댓글()

Spring Cloud Starter Stream Source JDBC에 포함된 JDBC 드라이버

Java|2020. 1. 30. 19:01

Spring Cloud Data Flow(스프링 클라우드 데이터 플로우)에서 JDBC 소스를 사용해 하이브(Hive)에 연결하는 중에 JDBC 드라이버 클래스를 못 찾는다는 오류가 발생했다. spring.datasource.driver-class-name 옵션값은 제대로 넣었다. 심지어 문서에선 클래스 이름을 안 넣으면 spring.datasource.url에 입력한 URL로 알아서 판단한다고 돼 있다.

생각해 보니, 이 모듈이 모든 데이터베이스의 JDBC 드라이버를 가지고 있을 턱이 없다. 어떤 JDBC 드라이버를 내장하고 있는지 조사해봤더니 다음과 같다.

  • H2
  • MariaDB
  • PostgreSQL
  • Microsoft SQL Server

직접 확인하고 싶다면 스프링 클라우드 스트림 프로젝트의 코드 저장소에서 pom.xml 파일을 보면된다.

참고로 MySQL을 사용한다면 spring.datasource.driver-class-name 옵션을 다음과 같이 입력해 MariaDB 드라이버를 사용하면 된다.

  • spring.datasource.driver-class-name=org.mariadb.jdbc.Driver

 

도움이 됐다면 공감 버튼을 클릭해 주세요. 감사합니다.

댓글()

유용한 크롬(Chrome) 단축키 - 탭(tab) 이동

기타|2020. 1. 18. 09:39

크롬을 사용하다 보면 키보드로 탭 이동을 해야 할 때가 있다.

단축키 Ctrl+9를 사용하면 탭 개수에 상관없이 마지막 탭으로 이동한다.

단축키 Ctrl+1~Ctrl+8을 사용하면 첫 번째 탭에서 여덟 번째 탭까지 손쉽게 이동할 수 있다.

 

도움이 됐다면 공감 버튼을 클릭해 주세요. 감사합니다.

댓글()

Ubuntu 16.04에서 발생하는 libseccomp2 의존성 문제

설치&설정|2019. 12. 23. 07:10

Ubuntu 16.04에서 docker(도커) 18.09 버전을 설치할 때 발생한 문제다.

도커 설치 문서를 참고해 설치를 진행했으나 다음과 같이 libseccomp2 패키지에 대한 의존성 문제가 발생했다.

root@ansible:~# sudo apt-get install docker-ce=5:18.09.9~3-0~ubuntu-xenial docker-ce-cli=5:18.09.9~3-0~ubuntu-xenial containerd.io
몇몇 패키지를 설치할 수 없습니다. 요청한 상황이 불가능할 수도 있고,
...
다음 패키지의 의존성이 맞지 않습니다:
 containerd.io : 의존: libseccomp2 (>= 2.4.0) 하지만 2.3.1-2.1ubuntu2~16.04.1 패키지를 설치할 것입니다

libseccomp2를 직접 설치해도 2.4 버전이 설치되진 않는다.

root@ansible:~# sudo apt-get install libseccomp2
libseccomp2 is already the newest version (2.3.1-2.1ubuntu2~16.04.1).

리눅스용 Libseccomp2 다운로드를 방문해 환경에 맞는 패키지를 다운로드한 후 설치한다.

root@ansible:~# curl -O http://archive.ubuntu.com/ubuntu/pool/main/libs/libseccomp/libseccomp2_2.4.1-0ubuntu0.16.04.2_amd64.deb

root@ansible:~# dpkg -i libseccomp2_2.4.1-0ubuntu0.16.04.2_amd64.deb
(데이터베이스 읽는중 ...현재 182339개의 파일과 디렉터리가 설치되어 있습니다.)
Preparing to unpack libseccomp2_2.4.1-0ubuntu0.16.04.2_amd64.deb ...
Unpacking libseccomp2:amd64 (2.4.1-0ubuntu0.16.04.2) over (2.3.1-2.1ubuntu2~16.04.1) ...
libseccomp2:amd64 (2.4.1-0ubuntu0.16.04.2) 설정하는 중입니다 ...
Processing triggers for libc-bin (2.23-0ubuntu11) ...

도커를 설치하고 동작을 확인한다.

root@ansible:~# sudo apt-get install docker-ce=5:18.09.9~3-0~ubuntu-xenial docker-ce-cli=5:18.09.9~3-0~ubuntu-xenial containerd.io

root@ansible:~# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete
Digest: sha256:4df8ca8a7e309c256d60d7971ea14c27672fc0d10c5f303856d7bc48f8cc17ff
Status: Downloaded newer image for hello-world:latest

Hello from Docker!

 

도움이 됐다면 공감 버튼을 클릭해 주세요. 감사합니다.

댓글()
  1. 어흑흑 2020.08.26 15:38 댓글주소  수정/삭제  댓글쓰기

    감사합니다.. 감사합니다..

쿠버네티스(kubernetes)의 imagePullPolicy

Kubernetes|2019. 12. 22. 12:11

쿠버네티스의 기본 이미지 가져오기 정책(image pull policy)은 IfNotPresent다. 따라서 이미지가 이미 있으면 레지스트리에서 이미지를 가져오지 않고 로컬 이미지를 사용한다.

항상 레지스트리에서 이미지를 가져오게 하고 싶으면 다음과 같이 한다.

  • 컨테이너 구성(spec)의 imagePullPolicyAlways로 설정한다.
  • 컨테이너 구성에서 imagePullPolicy 항목을 없애고 태그가 :latest인 이미지를 사용한다. Always 정책이 적용된다.
  • 컨테이너 구성에서 imagePullPolicy 항목을 없애고 태그를 생략한 이미지를 사용한다. Always 정책이 적용된다.
  • AlwaysPullImages 어드미션 컨트롤러(Admission Controller)를 활성화한다.

lastest 태그는 상용 환경(production)에선 사용하지 않는 게 좋다. 어떤 이미지를 사용 중인지 알 수 없고 롤백 또한 어렵다.

이미지에 대한 더 다양한 내용은 다음 링크를 참고한다.

 

도움이 됐다면 공감 버튼을 클릭해 주세요. 감사합니다.

댓글()

minikube -The system cannot find the path specified..

Kubernetes|2019. 1. 7. 08:13

윈도우(Windows)에서 minikube start 명령을 실행했을 때 다음과 같은 오류가 발생하는 경우가 있다.

D:\tmp>minikube start --bootstrapper kubeadm --memory 4096
Starting local Kubernetes v1.12.4 cluster...
Starting VM...
Downloading Minikube ISO
 178.88 MB / 178.88 MB [============================================] 100.00% 0s
E0104 10:20:54.727967   15524 start.go:187] Error starting host: Error creating host: Error executing step: Creating VM.
: open /Users/daniel/.minikube/cache/iso/minikube-v0.32.0.iso: The system cannot find the path specified..

 Retrying.
E0104 10:20:54.732965   15524 start.go:193] Error starting host:  Error creating host: Error executing step: Creating VM.
: open /Users/daniel/.minikube/cache/iso/minikube-v0.32.0.iso: The system cannot find the path specified.
================================================================================
An error has occurred. Would you like to opt in to sending anonymized crash
information to minikube to help prevent future errors?
To opt out of these messages, run the command:
        minikube config set WantReportErrorPrompt false
================================================================================
Please enter your response [Y/n]:

이럴 때는 MINIKUBE_HOME 환경 변수를 설정하면 된다.

minikube를 Chocolatey로 설치했다면 다음과 같이 설정한 후 다시 minikube start 명령을 실행한다.

D:\tmp>set MINIKUBE_HOME=C:\ProgramData\chocolatey\lib\Minikube\tools
D:\tmp>minikube start --bootstrapper kubeadm --memory 4096

EOF

태그 : kubernetes

댓글()

윈도(Windows)에서 도커 IP 주소 조회

Kubernetes|2018. 6. 20. 18:05

Docker Quickstart Terminal을 실행하고, 다음과 같이 명령을 실행한다.

$ docker-machine url
tcp://192.168.99.100:2376

예를 들면, Postgres를 실행하면서 다음과 같이 5432 포트를 호스트의 5432 포트와 매핑한 경우.

$ docker run -d -p 5432:5432 --name postgres postgres:alpine

192.168.99.100:5432로 DB에 접속할 수 있다.


EOF


태그 : docker

댓글()

쿠버네티스 네임스페이스(namespace)의 이름 제약

Kubernetes|2018. 6. 11. 18:13
  • 최대 63자(characters)
  • 알파벳 소문자와 숫자, 하이픈(-)만 허용
  • 하이픈(-)은 맨 앞이나 뒤에 올 수 없음
  • 이름이 틀렸을 경우 다음과 같은 오류 메시지가 나옴(유효성 체크를 위한 regex가 포함됨!)
The Namespace "p.k.t" is invalid: metadata.name: Invalid value: "p.k.t": a DNS-1123 label must consist of lower case alphanumeric characters or '-', and must start and end with an alphanumeric character (e.g. 'my-name',  or '123-abc', regex used for validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?')


EOF

태그 : kubernetes

댓글()

도커(docker) 이미지의 내용이 궁금할 때

Kubernetes|2018. 5. 5. 14:12

도커(docker) 이미지가 어떻게 만들어졌는지 궁금한데 소스가 없는 경우에는 어떻게 할까? 이럴 때는 docker inspect 명령을 사용한다.

면저 분석하려는 이미지를 pull한다.

$ docker pull tensorflow/tensorflow:latest-gpu
latest-gpu: Pulling from tensorflow/tensorflow
d3938036b19c: Pull complete
a9b30c108bda: Pull complete
67de21feec18: Pull complete
817da545be2b: Pull complete
d967c497ce23: Pull complete
5ddeb439bad8: Pull complete
c6496427ad3b: Pull complete
360fde1360ca: Pull complete
1c3227e49e63: Pull complete
ec2edd14d4b6: Pull complete
96c7a24a6f0c: Pull complete
dee49a23eeb6: Pull complete
3c5ca73fbac5: Pull complete
50f4e1802dc1: Pull complete
316fabb600d5: Pull complete
62c1e601d7a6: Pull complete
Digest: sha256:d31c50ce2d31a21cb5396be59fcab4f8dba405dda2fcaf0f747a407ca277c9f0
Status: Downloaded newer image for tensorflow/tensorflow:latest-gpu

inspect 명령으로 상세한 내용을 살펴본다.

$ docker inspect tensorflow/tensorflow:latest-gpu
[
    {
        "Id": "sha256:e93ab8001bbf2743d82ed90e3735e44615aafd23e794f5561cb510379c8ad869",
        "RepoTags": [
            "tensorflow/tensorflow:latest-gpu"
        ],
        "RepoDigests": [
            "tensorflow/tensorflow@sha256:d31c50ce2d31a21cb5396be59fcab4f8dba405dda2fcaf0f747a407ca277c9f0"
        ],
        "Parent": "",
        "Comment": "",
        "Created": "2018-04-28T00:40:03.186381907Z",
        "Container": "e26d7da89405f94fa446e4f03d45a43cbf09e7c26ba544ade272f5570aeab553",
        "Config": {
            "Env": [
                "PATH=/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "CUDA_VERSION=9.0.176",
                "CUDA_PKG_VERSION=9-0=9.0.176-1",
                "LD_LIBRARY_PATH=/usr/local/cuda/extras/CUPTI/lib64:/usr/local/nvidia/lib:/usr/local/nvidia/lib64",
                "NVIDIA_VISIBLE_DEVICES=all",
                "NVIDIA_DRIVER_CAPABILITIES=compute,utility",
                "NVIDIA_REQUIRE_CUDA=cuda>=9.0"
            ],
            "Cmd": [
                "/run_jupyter.sh",
                "--allow-root"
            ],
            "ArgsEscaped": true,
            "Image": "sha256:3dda217166b30645da5f5a71aad7d1e895b86a2235b62856f54494e9b23f2de4",
            "Volumes": null,
            "WorkingDir": "/notebooks",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {
                "com.nvidia.build.id": "63756748",
                "com.nvidia.build.ref": "2b1c8edf8d79830ad811baff9630adb3bcb5db46",
                "com.nvidia.cuda.version": "9.0.176",
                "com.nvidia.volumes.needed": "nvidia_driver",
                "maintainer": "Craig Citro <craigcitro@google.com>"
            }
        },
        "Metadata": {
            "LastTagTime": "0001-01-01T00:00:00Z"
        }
    }
]

비록 소스 파일(Dockerfile)을 얻을 수 있는 건 아니지만 출력된 내용을 잘 보면 충분히 유추가 가능한다.


EOF

태그 : docker

댓글()

Minikube의 docker-env 명령 취소

Kubernetes|2018. 5. 4. 19:30

minikube docker-env 명령을 실행하면, minikube VM의 도커(docker) 데몬과 호스트의 도커 클라이언트를 연결하는 명령을 알려준다.

이를 이용한 후에 되돌리려면 아래 명령 실행 후에 출력되는 내용을 참고하면 된다.

docker-machine env

다음은 Windows에서의 실행 결과다.

C:\\Users\\daniel>docker-machine env
SET DOCKER\_TLS\_VERIFY=1
SET DOCKER\_HOST=tcp://192.168.99.101:2376
SET DOCKER\_CERT\_PATH=C:\\Users\\daniel\\.docker\\machine\\machines\\default
SET DOCKER\_MACHINE\_NAME=default
SET COMPOSE\_CONVERT\_WINDOWS\_PATHS=true
REM Run this command to configure your shell:
REM     @FOR /f "tokens=\*" %i IN ('docker-machine env') DO @%i

마지막 줄의 @FOR /f "tokens=\*" %i IN ('docker-machine env -u') DO @%i을 실행하면, 다시 Docker Toolbox의 도커 데몬을 사용하게 된다.

EOF

태그 : docker, kubernetes

댓글()

Liquibase - 기존 DB를 이용해서 초기(initial) ChangeSet 만들기

DevOps|2018. 4. 5. 18:12

Generating Change Logs

  • Example
liquibase --driver=oracle.jdbc.OracleDriver \
      --classpath=\path\to\classes:jdbcdriver.jar \
      --changeLogFile=com/example/db.changelog.xml \
      --url="jdbc:oracle:thin:@localhost:1521:XE" \
      --username=scott \
      --password=tiger \
      generateChangeLog
  • default options
liquibase --driver=org.postgresql.Driver --classpath=C:/Users/daniel/.IntelliJIdea2017.3/config/jdbc-drivers/PostgreSQL/42.2.1/postgresql-42.2.1.jar --changeLogFile=db.changelog.xml --url="jdbc:postgresql://localhost:5432/postgres" --username=postgres --password=postgres generateChangeLog
liquibase --driver=org.postgresql.Driver --classpath=C:/Users/daniel/.IntelliJIdea2017.3/config/jdbc-drivers/PostgreSQL/42.2.1/postgresql-42.2.1.jar --changeLogFile=db.data.changelog.xml --url="jdbc:postgresql://localhost:5432/postgres" --username=postgres --password=postgres --diffTypes="data" generateChangeLog
  • all(default + include data)
liquibase --driver=org.postgresql.Driver --classpath=C:/Users/daniel/.IntelliJIdea2017.3/config/jdbc-drivers/PostgreSQL/42.2.1/postgresql-42.2.1.jar --changeLogFile=db.all.changelog.xml --url="jdbc:postgresql://localhost:5432/postgres" --username=postgres --password=postgres --diffTypes="tables, views, columns, indexes, foreignkeys, primarykeys, uniqueconstraints, data" generateChangeLog
  • 데이터베이스 업데이트를 위해 Liquibase가 사용하는 SQL 파일 생성
liquibase --driver=org.postgresql.Driver --classpath=C:/Users/daniel/.IntelliJIdea2017.3/config/jdbc-drivers/PostgreSQL/42.2.1/postgresql-42.2.1.jar --changeLogFile=db.all.changelog.xml --url="jdbc:postgresql://localhost:5432/postgres" --username=postgres --password=postgres --diffTypes="tables, views, columns, indexes, foreignkeys, primarykeys, uniqueconstraints, data" updateSQL  > updateSQL.sql
  • 생성된 ChangeSet은 여러 개로 나뉘어져 있는데, 하나의 ChangeSet으로 병합하는게 좋다.
    • 변경 로그를 하나만 남기기 위해서.
    • 가독성



EOF

태그 : liquibase

댓글()