Jupyterlab 의 extension 을 설치하고 build 시 npm 에러.

jupyterlab 의 확장 모듈을 다운받아 설치시 nodejs 실행 환경이 제공되야 한다.

jupyterlab 확장 build error

jupyterlab 의 확장 모듈을 다운받아 설치하다 보면 npm 과 연계한 프로그램이 많다. 아래 같은 nodejs 관련 에러를 발생한다.

1
2
3
4
5
6
daddy> jupyter lab build
...
...
An error occurred.
RuntimeError: npm dependencies failed to install
See the log file for details: C:\Users\USERID\AppData\Local\Temp\jupyterlab-debug-4kr1lkn1.log

결론으로 현재 jupyterlab 을 실행하는 환경에서

  1. nodejs 버전이 설치되어 있고
  2. jupyterlab extensions가 활성화 되어 있다면

해당 로그 파일을 확인해 보면 대부분 nodejs 버전이 일치하지 않아서 아래 같은 로그를 기록하고 있어 보인다.

1
2
error readable-stream@4.3.0: The engine "node" is incompatible with this module. Expected version "^12.22.0 || ^14.17.0 || >=16.0.0". Got "14.15.0"
error Found incompatible module.

nodejs 버전을 업그레이드 하고 빌드를 수행하니 잘 된다.

Docker CLI 요약

docker cli 명령을 정리

docker architecture 이미지 소스

비슷한 문서:

docker cli

docker cli는 docker 명령 뒤에 docker commands 로 도커를 제어한다. 그리고 대상 컨테이너를 지정하고 컨테이너에서 실행 할 수 있는 명령형식으로 구성되어 있다.

1
docker [docker commands] [container] [container command] 

Use the Docker command line docker

search 이미지 검색

Docker hub에서 이미지를 검색한다.

1
docker search busybox

Docker hub에서 상위 몇개 정도만 검색하고 싶을때 limit 옵션을 사용한다.

1
docker search busybox --limit 5

Docker hub에서는 이미지 중 별점을 검색한다.

1
2
3
4
5
# 최소 별정 50인 이미지
docker search busybox --filter=stars=50

# 별점이 3인 이미지
docker search --filter stars=50 busybox

정규 빌드 버전만 지시하려면 is-official 옵션 사용

1
2
docker search --filter is-official=true --filter stars=50 busybox

--format 옵션을 사용해 출력되는 내용을 필터링 할 수 있다. 다음은 별점만 출력하는 예이다.

1
docker search --format "{{.Name}}: {{.StarCount}}" nginx

pull 이미지를 다운로드 한다

Docker image를 내려 받는다. 이미지 이름 뒤에 :[version] 을 붙이면 지정한 버전을 내려 받고, latest 를 붙이면 최신 버전을 대상으로 한다.

1
docker pull nginx:latest

images 다운로드 이미지

Docker에서 다운로드 받는 이미지를 확인한다. docker images는 모든 이미지를 보여준다.

1
$ docker images

특정 이미지만 지시할 수 있다.

1
$ docker images nginx

run 이미지를 컨테이너로 실행한다.

Docker image를 컨테이너로 생성하고, 실행합니다.

1
docker run -p 8080:8080 nginx

옵션:

1
2
3
4
5
`-p`: Local과 Container 와 port를 연결하는 옵션
`-i`: interactive (대화방식)
`-t`: Pseudo-tty (콘솔 및 터미널 환경)
`— name`: 실행 컨테이너 이름을 지정합니다.
`-d`: 백그라운드에서 실행되는 옵션입니다.

docker image를 실행하고 bash 쉘을 연다.

1
docker run -i -t --name nginx nginx bash

ps 컨테이너 목록을 확인

Docker 컨테이너 목록을 확인합니다.

1
2
$ docker ps
$ docker ps -a

옵션:

1
2
`-a` : 실행 중이 아닌 컨테이너까지 확인
`-q` : 컨테이너의 CONTAINER ID 만 표시

start 컨테이너를 시작한다.

중단되어 있는 컨테이너를 실행합니다.

1
2
docker start nginx
nginx

attach 컨테이너 연결

실행중인 Docker Container 의 standard input, output, error streams 에 연결한다.

1
docker attach nginx

docker attach 명령 사용 사례.

exec 컨테이너 명령 실행

Docker Container의 쉘의 명령어을 실행할 수 있다.

1
docker exec nginx ls

옵션

1
2
3
4
5
-d, --detach : 명령을 detach mode, 백그라운드로 실행
-e, --env : 환경변수 설정하고 실행
-it [SHELL]: iteractive tty 옵션. 사용할 shell을 지시한다, 보통 bash
-u, --user: User ID, UID
-w, --workdir: 작업 디렉토리 지정

다음은 nginx 컨테이너의 bash 쉘을 실행한다.

1
docker exec -it nginx bash

다음은 nginx 컨테이너를 qkboo 사용자 쉘로 연결한다.

1
docker exec -it -u qkboo nginx bash

inspect 컨테이너 상세 정보

Docker Container에 상세 정보를 확인 한다.

1
docker inspect nginx

옵션

--format : 필터링

1
docker inspect  --format='{{range .NetworkSettings.Networks}}

logs 명령

Docker 컨테이너에서 sysout 또는 syserr 로그를 보려면 logs 명령을 사용한다.

docker logs

stop 컨테이너 종료

ps 명령으로 실행중인 컨테이너 아이디와 이름을 확인하고 아이디를 준다.

1
2
3
docker ps

docker stop e417951d25fd

이름으로 종료시 --name 옵션 사용

1
docker stop --name nginx2

rm 컨테이너를 삭제한다.

Docker Container 삭제합니다. 삭제할때는 실행 상태가 아닌 컨테이너만 가능합니다.

1
docker rm nginx

강제 삭제시 -f 옵션 사용.

rmi 이미지를 삭제한다.

Docker image를 삭제 하는데 이미지가 중첩된 경우가 많기 때문에 링크 같이 untag 한 후 사용한다.

1
2
3
docker rmi fd484f19954f

docker rmi test2:latest

혹은 -f 옵션으로 중첩된 이미지를 모두 함께 삭제 할 수 있다.

1
docker rmi -f fd484f19954f

참고