하기처럼 docker 이미지를 출력하면 docker repository 와 tag가 <none>으로 출력되는 경우가 있다.

$  docker images
REPOSITORY                                    TAG                                   IMAGE ID       CREATED        SIZE
<none>                                               <none>                              4d78d3e67cb5   1 months ago   30.8GB

sys                                                      v1.4                                   d38be44fe367    1 weeks ago     20.8GB

    ... ...

opt                                                      v1.1                                   a38be45fe457     2 weeks ago     10.1GB

 

<none>으로 표기된 이미지를 삭제하지 않고 이름을 붙일 필요가 있다면, 하기 명령으로 repository와 tag를 부여할 수 있다.

docker image tag [image_id] [repository name:tag]

 

사례)

$ docker image tag 4d78d3e67cb5  test:v1.0

$ docker images

REPOSITORY                                    TAG                                   IMAGE ID       CREATED        SIZE
test                                                      v1.0                                   4d78d3e67cb5   1 months ago   30.8GB

sys                                                      v1.4                                   d38be44fe367    1 weeks ago     20.8GB

 

해당 원인은 여러 개가 있는데 주로 빌드 할 때, 이미 존재하는 레포지토리:태그명과 중복된 상태로 빌드하거나 이미지가 제대로 빌드 되지 않아서 발생하며 Dangling Image라고 부른다.

위처럼 repository와 tag 명을 강제로 붙여줄 수도 있으나 삭제하는 게 좋을 경우가 많다. 이 경우 하기 명령으로 삭제 한다.

아래 세 개 명령은 약간으 ㅣ차이는 있으나 모두 Dangling Image를 삭제하게 된다.

 

1) $ docker iamge prune

2) docker rmi $(docker images --filter "dangling=true" -q --no-trunc)

3) $ docker rmi $(docker images -a|grep "<none>"|awk '$1=="<none>" {print $3}')

 

 

반응형

 

모바텀은 매우 편한 터미널이지만 종종 세션이 끊어지거나 연결이 죽는 현상(freezing)이 발생한다. 모바텀 세션이 끊기거나 죽는 현상은 2개이다.

  - 세션이 죽거나 화면이 멈추는 현상 (freezing) 

  - 사용이 오래되어 세션이 끊기는 현상 (stopped session)

 

1. 세션이 죽거나 화면이 멈추는 현상 (freezing) 

이것은 상당히 쓰기 불편한데, 하단과 같이 처리하면 해결된다.

 

모바텀 메뉴 Settings → Configuration →  SSH (tab) → GSSAPI Kerberos 체크 제거

 

리눅스에서 종종 있는 문제로 GSSAPI kerberos 가 활성화되어 있으면 keberos DNS에 질의를 하는데 DNS 응답이 늦어질 경우 접속지연이 발생한다. 이로 인해 간헐적으로 접속지연이 발생하거나 화면이 멈추는 현상이 발생한다.

 

만약 서버에서 설정하고 싶다면

vi /etc/ssh/sshd_config

GSSAPIAuthentication no

 

을 입력하고 저장한다.

 

2. 사용이 오래되어 세션이 끊기는 현상 (stopped session)

이것은 사실 정상적인 애플리케이션의 처리현상이다. 다만, 역시 불편하다.  하기와 같이 나올 때 세션이 끊긴 것이다.

 Network error: Software caused connection abort
 ─────────────────────────────────────────────────────
 Session stopped
     - Press <Return> to exit tab
     - Press R to restart session
     - Press S to save terminal output to file

 

모바텀 메뉴 Settings → Configuration →  SSH (tab) → SSH keepalive 체크 추가

(버전에 따라 다른데, Fix connection issues 체크 버튼이 보이면 추가로 체크해야 한다.)

 

반응형

우분투 Bash 쉘스크립트 작성 시 if 문 내에서 연산자 ( ==, <  등)을 사용할 때 No such file or directory 오류가 나는 경우에 해결방법은 아래와 같다.

 

□ 사례

text.sh

var=100
if [ $var < 200 ]; then
     ... ...

else 
     ... ...
fi

 

실행 결과 

$ bash test.sh
test.sh: line 3: 200: No such file or directory

 

bash 쉘(POSIX 쉘) 가이드에 따르면 하기와 같이 "<" 연산자 대신 "-lt"로 수정해야 제대로 동작한다.

[ "$var" -lt 200 ]

 

각 사용법은 하기와 같다.

 

□ POSIX 쉘 가이드 : 상황별 "<" 연산자 사용 방법

   - ※ [   공백   "$var"   -lt   200   공백   ] 처럼 '공백' 이 있어야 한다.

문법 대상 (상황) 주의 사항
[ "$var" -lt 200 ] 숫자 비교 POSIX shell 전체
[ "$var" \< 200 ] 문자 비교 POSIX shell 전체
[[ $var -lt 200 ]] 문자 비교 bash, ksh 에서만 동작
(( $var -lt 200 )) 숫자 비교 bash, ksh 에서만 동작
(( var < 200 )) 숫자 비교, var를 $ 없이도 변수로 인식함 bash, ksh 에서만 동작

 

 

□ 참고

비교 연산자 사용법 의미
== [ $A == $B ] 같다
!= [ $A != $B ] 같지 않다
> [ $A > $B ] 크다
>= [ $A >= $B ] 크거나 같다
< [ $A < $B ] 작다
<= [ $A <= $B ] 작거나 같다
&& [ $A && $B ] 논리연산 AND, 둘 다 모두 True 이면 True
|| [ $A || $B ] 논리연산 OR, 둘 중 하나가 True 이면 True

 

비교식 사용법 약어 유래 의미 비고
-z [ -z $A ]   공백이면 True $A == ""
-n [ -n $A ]   공백이 아니면  True $A != ""
-eq [ $A -eq $B ] equal to 같다 $A == $B
-ne [ $A -ne $B ] not equal to 같지 않다 $A != $B
-ge [ $A -ge $B ] greater than or equal to 크거나 같다 $A >= $B
-gt [ $A -gt $B ] greater than  크다 $A > $B
-le [ $A -le $B ] less than or equal to 작거나 같다 $A <= $B
-lt [ $A -lt $B ] less than 작다 $A < $B
-a [ $A -a $B ]   논리연산 AND, $A, $B 모두 True이면 True $A && $B
-o [ -o $A ]   논리연산 OR,  $A, $B 중 하나가 True이면 True $A || $B

 

파일 비교 사용법 의미
-f [ -f $A ] 파일  (디렉토리나 다른 형태의 파일은 False)
-d 이하 동일 디렉토리
-L   심볼링 링크 
-r   사용자가 대상에 읽기 권한(read)을 가지고 있으면 True
-w   사용자가 대상에 쓰기 권한(write)을 가지고 있으면 True
-x   사용자가 대상에 쓰기 실행(execution)을 가지고 있으면 True
-s   파일 크기가 0 이 아니면 True
-S   소켓
-nt [ $A -nt $B] $A 파일이 $B 보다 최신이면 True
-ot [ $A -ot $B] $A 파일이 $B 보다 오래되면 True
-ef [ $A -ef $B] 동일 파일이면 True

 

반응형

'Linux' 카테고리의 다른 글

docker repository <none>  (0) 2024.10.04
모바텀(MobaXterm) 세션 죽는 현상 개선  (0) 2024.09.10
tar, tar.gz 압축 및 해제  (2) 2024.07.03
Docker 중단없이 나오기(Detach)  (2) 2024.02.25
Ubuntu 버전 확인  (0) 2024.02.24

□ tar

- tar 압축

$ tar -cvf   "압축 파일명.tar"    "폴더 or 파일"

   e.g. tar -cvf target.tar source.txt

 

- tar 압축해제

$ tar -xvf "파일명.tar"

   e.g. tar -xvf target.tar

 

□ tar.gz

  기존 tar 명령어에 -z 옵션(option) 추가

 

- tar.gz 압축

$ tar -zcvf   "압축 파일명.tar"    "폴더 or 파일"  

   e.g. tar -cvf target.tar.gz source.txt

 

- tar.gz 압축 해제

$ tar -zxvf   "압축 파일명.tar.gz"

   e.g. tar -zxvf target.tar

주요 명령 옵션(command options)

options 설명
 -c  압축
 -x  압축 해제
 -v  작업진행 상태를 화면에 출력
 -f  파일명 지정
 -z  gzip 압축 또는 해제

 

반응형

 

Container를 실행(running) 상태로 두면서 나오기, 아래처럼   Ctrl 버튼 누른 상태에서 p, q를 순서대로 입력한다.

Ctrl+p+q 

 

나온 상태에서 docker ps를 실행하면

$ docker ps

CONTAINER ID   IMAGE    COMMAND    CREATED          STATUS        PORTS   NAMES
042b6ec17812   nvidia   "/opt/…"   51 minutes ago   Up 51 minutes         strange_galois

 

위 STATUS 항목에서 볼 수 있듯이 UP 상태로 그대로 실행 중인 것을 확인할 수 있다.

 

다시 접속을 위해서는 위 예제의 경우 NAMES = strange_galois 이므로 아래와 같이 명령을 수행한다.

$ docker attach strange_galois

 

여담으로 실행 중인 docker 컨테이너에 접속하는 것을 attach라고 칭하듯이, 컨테이너 중단 없이 나가는 것을 detach 라고 부른다. 또한, docker 옵션 중 -d 옵션이 detach mode를 뜻하며 아래 명령은 컨테이너 ABC를 중단없이 백그라운드로 실행한다.

 

$ docker -d -- name ABC   

 

 

 

반응형

Ubuntu 버전의 경우 몇 가지 방법으로 버전 확인을 할 수 있다.

 

가장 쉬운 방법은 하기와 같다. Ubuntu는 /etc/issue 파일에 간단한 시스템 버전 정보를 기재해 놓고 있다. 간단히 출력해서 확인이 가능하다. 해당 파일은 누구나 읽을 수 있도록 되어 있다(-rw-r--r--).

$ cat /etc/issue

 

보다 상세한 정보는 /etc/os-release에 기재되어 있다. 구체적인 정보를 확인할 수 있으므로 가장 좋은 방법이라고 생각된다.

$ cat /etc/os-release

 

lsb_release 명령을 사용하는 방법도 있다.

$ lsb_release -a 

 

lsb_release의 경우 -d 옵션을 사용할 수도 있다.

$ lsb_release -d

 

이외 방법으로 hostnamectl 을 통해서 간접 확인이 가능하다. 참고로 hostnamectl은 시스템 host 명을 설정하는 데 사용하는 명령이다.

 

$ hostnamectl

 Static hostname: h100-cluster-002
       Icon name: computer-server
         Chassis: server
      Machine ID: de2a9aa515524021a6eddac86033f257
         Boot ID: 2e1df185400f43eea56e427114449f4c
Operating System: Ubuntu 22.04 LTS
          Kernel: Linux 5.15.0-25-generic
    Architecture: x86-64
 Hardware Vendor: HPE
  Hardware Model: HPE Cray XD670

 

반응형

 

 

윈도우 환경에서 우분투 원격 접속 할때, 접속은 되지만 검은 화면(black screen)만 보이는 경우가 많다. (사실 대부분...?)

이 경우, xrdp X session start script에 아래 세 줄을 추가해서 해결할 수  있다.

 

unset DBUS_SESSION_BUS_ADDRESS 
unset XDG_RUNTIME_DIR 
. $HOME/.profile

 

우선 startwm.sh 파일을 연다. 하기처럼 해당 파일의 특정 위치에 추가해야 한다.

$ sudo vi /etc/xrdp/startwm.sh

#!/bin/sh
# xrdp X session start script (c) 2015, 2017 mirabilos
# published under The MirOS Licence

                         ... 중략 ....
        
        test -z "${LC_NUMERIC+x}" || export LC_NUMERIC
        test -z "${LC_PAPER+x}" || export LC_PAPER
        test -z "${LC_TELEPHONE+x}" || export LC_TELEPHONE
        test -z "${LC_TIME+x}" || export LC_TIME
        test -z "${LOCPATH+x}" || export LOCPATH
fi

if test -r /etc/profile; then
        . /etc/profile
fi

# 추가할 부분
unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR
. $HOME/.profile

test -x /etc/X11/Xsession && exec /etc/X11/Xsession
exec /bin/sh /etc/X11/Xsession
~

 

추가한 세 줄은 test ... exec.. 위에 위치해야 하며 이후 xrdp 서비스를 재시작한다.

$service xrdp restart

 

원격 접속을 다시 시작해서 결과 확인한다. 

 

□ 관련 페이지

- Ubuntu GUI 원격접속 https://driz2le.tistory.com/467

 

Ubuntu GUI 원격접속

윈도우 원격접속을 이용해서 Ubuntu GUI 환경으로 접속을 위해 xrdp 를 이용할 수 있다. 우선 하기와 같이 xrdp vnc3server tightvncserver를 삭제한다. 해당 서비스의 경우 높은 확률로 vnc error ( VNC error - probl

driz2le.tistory.com

 

반응형

'Linux' 카테고리의 다른 글

Docker 중단없이 나오기(Detach)  (2) 2024.02.25
Ubuntu 버전 확인  (0) 2024.02.24
Ubuntu 디스크 용량 확인  (0) 2024.02.07
[Windows] Jupyter notebook 띄우기  (2) 2024.02.07
Ubuntu USB 만들기 (ubuntu 22.04)  (0) 2023.09.08

□ 환경

- Ubuntu 

 

디스크 별 용량 확인
df -h
 
특정 디렉토리 용량 확인
du -hs folder
(-h : byte 형태로 출력)

특정 폴더에 있는 폴더 및 파일 용량 출력
du -hs 폴더명

 

특정 폴더에서 파일 용량이 큰 순서대로 출력
du -h --max-depth=1 폴더명 | sort -hr

특정 디렉토리에 있는 폴더들에 대해 용량 크기 순으로 정렬하여 출력
sudo du -ah --max-depth=1 폴더명 | sort -hr

반응형

'Linux' 카테고리의 다른 글

Ubuntu 버전 확인  (0) 2024.02.24
xrdp 원격 접속, 검은 화면 해결(black screen)  (0) 2024.02.22
[Windows] Jupyter notebook 띄우기  (2) 2024.02.07
Ubuntu USB 만들기 (ubuntu 22.04)  (0) 2023.09.08
pip 최신 버전 맞춤 설치하기  (0) 2023.06.05

□ 환경

- Windows, Ubuntu 공통

- python 3.7 이상

 

python 환경이 먼저 설치가 되어 있어야 한다.

 

Jupyter notebook이 설치가 되어 있지 않다면, 아래 명령으로 간단히 설치가 가능하다.

pip3 install jupyter

 

이후 하기 명령으로 간단히 띄우는 것이 가능하다.

python.exe -m notebook

 

C:\workspace>python -m notebook

[W 2024-02-07 10:21:11.326 ServerApp] A `_jupyter_server_extension_points` function was not found in notebook_shim. Instead, a `_jupyter_server_extension_paths` function was found and will be used for now. This function name will be deprecated in future releases of Jupyter Server.
[I 2024-02-07 10:21:11.329 ServerApp] jupyter_lsp | extension was successfully linked.

.....

    Or copy and paste one of these URLs:
        http://localhost:8888/tree?token=5d77610764e494f4a70849088e4713459b1fad22e87706cd
        http://127.0.0.1:8888/tree?token=5d77610764e494f4a70849088e4713459b1fad22e87706cd

.....

0.00s - Note: Debugging will proceed. Set PYDEVD_DISABLE_FILE_VALIDATION=1 to disable this validation.

 

실행하면 위와 같은 로그가 출력되며 이 중 copy and paste of these URLs: 란 문구 아래 둘 중 하나를 사용해서 브라우저 상에서 jupyter notebook을 띄우는 게 가능하다. 

copy and paste of these URLs:

      http://localhost:8888/tree?token=5d77610764e494f4a70849088e4713459b1fad22e87706cd
      http://127.0.0.1:8888/tree?token=5d77610764e494f4a70849088e4713459b1fad22e87706cd

 

반응형

□ 호환: Ubuntu 16.04, 18.04. 20.04. 22.04 등 전체 버전

 

우분투 설치를 위해 USB 인스톨 파일을 만들 필요가 있다.

이때, Rufus를 사용하면 간단하게 해결이 가능하다.

Rufus는 ISO 파일로부터 부팅 가능한 USB를 만들어주는 프로그램으로 가볍고 속도가 빠르기 때문에 편하게 사용가능하다. 사용을 위해 알아야 할 특별한 것은 없으며, 클릭 몇번으로 설치가 가능하다.

다운로드는 설치가 귀찮다면 portable 파일로 다운받기를 권장한다.

 

RUFUS  https://rufus.ie/ko/

 

Rufus - 간편하게 부팅 가능한 USB 드라이브 만들기

Rufus는 USB 메모리 및 플래시 드라이브를 포맷하고 부팅할 수 있도록 만드는 도구입니다. 이 페이지 아래에 나열된 ISO 이미지 이외에도 Rufus는 여러 종류의 ISO 이미지를 지원합니다. (1) Windows 8 이

rufus.ie

 

 

반응형

+ Recent posts