반응형

 

 

 

 - 실생중인 컨테이너 확인

[root@system1 ~]# docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

e4369650fa7a        centos:h3           "/usr/bin/bash"     40 seconds ago      Up 39 seconds                relaxed_wing

 

 

- 실행중인 컨테이너 접속  (docker attach 컨테이너ID)

 

[root@system1 ~]# docker attach e4369650fa7a

[root@e4369650fa7a /]# 

 
 
- 접속종료
1. Ctrl + Q ,   (접속종료,  컨테이너가 종료되지 않음)
     <-> Ctrl + P  컨테이너로 재접속 명령 생성됨  
   . Ctrl +P 실행결과
    [root@e4369650fa7a /]# read escape sequence
    [root@system1 ~]# docker attach e4369650fa7a   # 명령이 프롬프트에 생김
 
 
2. Ctrl + D  or exit   (컨테이너 종료, 접속도 종료됨)
 
 
 
 

 

반응형

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

docker commit 활용  (0) 2018.08.30
도커설치  (0) 2018.07.02
반응형

ㅁ docker commit 수행

 

- 작업순서 : 컨테이너실행 -> 컨테이너 변경점 생성 -> 이미지 commit

 

1. 이미지 선정

[root@system1 ~]# docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

centos              h3                  61e288d73c63        2 minutes ago       200MB

centos              h2                  dfc424879476        22 hours ago        200MB

 

 

2. 컨테이너 실행

[root@system1 ~]# docker run -it dfc424879476

[root@b964fe10cb17 /]# pwd                                                              # 프롬프트가 컨테이너 ID로 바껴있음

/

 

 

3. 컨테이너에서 iproute 설치

[root@b964fe10cb17 /]# yum -y install iproute-4.11.0-14.el7.x86_64            # 컨테이너 內 iproute 설치

 

 

4. 컨테이너 커밋

(터미널 추가실행, 다른창에서 실행해야함)

 

[root@system1 ~]# docker ps                                                             # 컨테이너 ID확인

CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS         

b964fe10cb17        dfc424879476        "/usr/bin/bash"     About a minute ago   Up 

 

 

[root@system1 ~]# docker commit b964fe10cb17 centos:h3                   #docker commit <컨테이너ID > <태그>

sha256:ab9d9aa92b32bbedf790474be68f8263fd34502e14ea95d1d5905e2ca4c2cd70

 

 

5. 확인

centos:h2 이미지에서는 #ip a 명령이 실행불가하였으나,

centos:h3 이미지에서는 #ip a 실행이 가능

 

 

 

반응형

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

실행중인 컨테이너 접속  (0) 2018.09.06
도커설치  (0) 2018.07.02
반응형


유저 변경(생성/수정/삭제)시  자동으로 /etc/group-, /etc/passwd-, /etc/shadow-  3개의 백업파일이 생성됨


반응형

'OS > LINUX' 카테고리의 다른 글

I/O Error 확인  (0) 2022.12.21
find 명령/옵션 팁  (0) 2022.12.16
gvfs  (0) 2018.01.17
firewall-cmd --remove 명령 오류 해결  (0) 2017.12.29
teaming port F/O 테스트  (0) 2017.12.29
반응형


- Docker version : Docker CE v18.03       # 18년 \03월 ver)

- OS : Linux Cent OS

- 참조URL : https://docs.docker.com/install/linux/docker-ce/centos/



ㅁ Repository를 설정한 후 docker 설치


1. lvm2, device mapper, yum utils 설치


$ sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2


2.  repository 설정

 sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo



3. 설치 

$ sudo yum install docker-ce



반응형

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

실행중인 컨테이너 접속  (0) 2018.09.06
docker commit 활용  (0) 2018.08.30
반응형

ㅁ gvfs : gnome에서 제공하는 기능으로, gvfs-mkdir , gvfs-mount 같은 명령어로 사용자별로 fs를 mount 하거나 

            디렉토리를 생성할때 사용하는 기능



1) gvfs-mkdir : gvfs-mkdir makes a directory specified by an URI using the VFS system.


URI를 사용하는 VFR(samba,nfs등가상의 파일시스템)을 mkdir하여 사용하기 위한 command


2) gvfs-mount :  mount, unmount and list file systems using the VFS system



 ㅁ gvgs 사용으로 인한 파생현상


- 상황 : root유저로 콘솔로그인 접속한 상황에서,  일반유저가 df -k 수행시  


 일반유저로 df -k 실행시 “/root/.gvfs: Permission denied”  발생.


- 조치 : 

1)콘솔로그인한 GUI환경의 root계정을 로그아웃하면됨

   .명령어 : gnome-session-save --logout


2) umount /root/.gvfs


반응형

'OS > LINUX' 카테고리의 다른 글

find 명령/옵션 팁  (0) 2022.12.16
/etc/group- , /etc/passwd- 파일생성  (0) 2018.08.07
firewall-cmd --remove 명령 오류 해결  (0) 2017.12.29
teaming port F/O 테스트  (0) 2017.12.29
teaming 구성  (0) 2017.12.26
반응형


- 현재 rich-rule

root@system1 ~]# firewall-cmd --list-all

public (active)

  target: default

  icmp-block-inversion: no

  interfaces: ens33 ens37 ens38 ens39 team0

  rich rules: 

rule family="ipv4" service name="nfs" accept

rule family="ipv4" source address="192.168.0.200/24" forward-port port="5423" protocol="tcp" to-port="80"


-삭제시도

[root@system1 ~]# firewall-cmd --remove-rich-rule='rule family="ipv4" source address="192.168.0.200/24" forward-port port="5423" protocol="tcp" to-port="80"'

Error: %x format: a number is required, not NoneType


삭제를 시도했으나, 자꾸 포맷이 이상하다는 메세지가 뜬다.  잘못된 포맷이 없는뎅 ㅜ


-해결방법

firewall 명령으로 추가한 정책은  /etc/firewalld/ 폴더내에 .xml파일로 저장되어있다.


root@system1 ~]# firewall-cmd --list-all

public (active)

  target: default

  icmp-block-inversion: no

  interfaces: ens33 ens37 ens38 ens39 team0

  rich rules: 

rule family="ipv4" service name="nfs" accept

rule family="ipv4" source address="192.168.0.200/24" forward-port port="5423" protocol="tcp" to-port="80"

rule family="ipv4" source address="192.168.0.0/24" forward-port port="5423" protocol="tcp" to-port="80"

rule family="ipv4" source address="192.168.0.200" service name="ssh" drop



위의 public(zone), rich ruels을 삭제하고 싶으면

/etc/firewalld/zones/public.xml을 열어보자


아래 빨간색 부분을 삭제 후 저장 하면

firewall-cmd --remove-rich-rule과 같은 효과로,  rich .rule을 삭제할수 있다.



-삭제결과

1) /etc/firewalld/zones/public.xml 파일 내용

-> rule이  nfs 허용 1건이다.


2) firewall-cmd --reload         

 -> reload 수행한다


3) list 결과확인

[root@system1 zones]# firewall-cmd --list-all

public (active)

  target: default

  icmp-block-inversion: no

  interfaces: ens33 ens37 ens38 ens39 team0

  sources: 

  services: ssh dhcpv6-client nfs

  ports: 

  protocols: 

  masquerade: no

  forward-ports: 

  source-ports: 

  icmp-blocks: 

  rich rules: 

rule family="ipv4" service name="nfs" accept



rule이 1건으로  vi열어서 삭제한 아래3건은 삭제되었다.


rule family="ipv4" source address="192.168.0.200/24" forward-port port="5423" protocol="tcp" to-port="80"

rule family="ipv4" source address="192.168.0.0/24" forward-port port="5423" protocol="tcp" to-port="80"

rule family="ipv4" source address="192.168.0.200" service name="ssh" drop

반응형

'OS > LINUX' 카테고리의 다른 글

/etc/group- , /etc/passwd- 파일생성  (0) 2018.08.07
gvfs  (0) 2018.01.17
teaming port F/O 테스트  (0) 2017.12.29
teaming 구성  (0) 2017.12.26
FS 축소  (0) 2017.12.21
반응형

※ 가상머신이므로 , 물리적인 F/O테스트는 불가함


- 준비 = teaming  (과정생략)

 teaming 구성 URL 참조 :  http://leejinae.tistory.com/16?category=767768


- 대상 interface 

 - team : team0

 - ethernet : ens38

 - ethernet : ens39


- 상태 

1) device 상태

[root@system1 network-scripts]# nmcli dev

장치   유형      상태           연결        

ens33  ethernet  연결됨         ens33       

ens37  ethernet  연결됨         ens37       

ens38  ethernet  연결됨         team0-port1 

ens39  ethernet  연결됨         team0-port2 

team0  team      연결됨         team0     


장치 name (ens38,ens39) 와  연결 name team-port1, team-port2를 분명히 구분하여 기억할것


[root@system1 network-scripts]# teamdctl team0 state

setup:

  runner: activebackup

ports:

  ens38

    link watches:

      link summary: up

      instance[link_watch_0]:

        name: ethtool

        link: up

        down count: 0

  ens39

    link watches:

      link summary: down

      instance[link_watch_0]:

        name: ethtool

        link: down

        down count: 1

runner:

  active port: ens38                                    #현재 active port는 ens38


-port f/o 방법

 1) port down

  [root@system1 network-scripts]# teamdctl team0 port remove ens38


 2) ethernet down 

  [root@system1 network-scripts]# ifconfig ens38 down


- 결과 

(ens38을 down 시켰으므로,   team 구성된 나머지하나(ens39)가 active port 가 됨)


[root@system1 network-scripts]# teamdctl team0 state

setup:

  runner: activebackup

ports:

  ens39

    link watches:

      link summary: up

      instance[link_watch_0]:

        name: ethtool

        link: up

        down count: 1

runner:

  active port: ens39



반응형

'OS > LINUX' 카테고리의 다른 글

gvfs  (0) 2018.01.17
firewall-cmd --remove 명령 오류 해결  (0) 2017.12.29
teaming 구성  (0) 2017.12.26
FS 축소  (0) 2017.12.21
nfs 설정  (0) 2017.12.19
반응형


- OS : RHEL 7

- device : ens38,39로 team0 구성




- team connection 생성, ifname 생성

[root@system1 ~]# nmcli con add con-name team0 type team ifname team0 config '{"runner":{"name":"activebackup"}}'


연결 'team0' (2922ad0f-7675-4370-8f06-ce0ddfdd8bc7)이 성공적으로 추가되었습니다.


-> con-name ,   type , ifname 옵션을 확인할것



- team connnection port 생성


[root@system1 ~]# nmcli con add con-name team0-port1 type team-slave ifname ens38 master team0

연결 'team0-port1' (d8b8b8f8-0326-4517-a499-a4abfb0a82da)이 성공적으로 추가되었습니다.



[root@system1 ~]# nmcli con add con-name team0-port2 type team-slave ifname ens39 master team0

연결 'team0-port2' (d62022f2-34df-456c-85b0-99028d2f29e9)이 성공적으로 추가되었습니다.


-ip 할당
[root@system1 ~]# nmcli con mod team0 ipv4.addresses 192.168.0.14


IP1개, device 2개로, 포트2개를 생성하였다. 

-현재 active된 port 확인
[root@system1 ~]# teamdctl team0 state
setup:
  runner: activebackup
ports:
  ens38
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
  ens39
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
runner:
  active port: ens39


 ens38,ens39 가 한개의 가상device team0으로 묶여 있다. 위의 설정을 도식화해보면,

  아래와 같다 



192.168.0.14 IP로 들어오는 connection은 가상device team0 -> 가상prot (물리device ens39)에서 처리된다.


반응형

'OS > LINUX' 카테고리의 다른 글

firewall-cmd --remove 명령 오류 해결  (0) 2017.12.29
teaming port F/O 테스트  (0) 2017.12.29
FS 축소  (0) 2017.12.21
nfs 설정  (0) 2017.12.19
vsftp chroot설정  (0) 2017.04.20
반응형

쉘프로그램중 많이쓰는 변수


1)일반변수

변수=값  선언

 ex) name=song


[root@system1 ~]# name=song

[root@system1 ~]# echo $name

song



2) $()   
$() =  command substitution  = 쉬운말로  명령어 결과값


ex1) 

name=song 변수로 선언하였을때

[root@system1 test]# echo $name              #  echo $name의 결과값은  song 

song                                                    


[root@system1 test]# touch $(echo $name)      

                                                           # touch 명령으로 파일을 만든다. 파일명은 echo $name결과값인 song

[root@system1 test]# ls -l

합계 16

drwx------. 2 root root 16384 12월 19 14:55 lost+found

-rw-r--r--. 1 root root     0 12월 23 15:51 song       #  $echo($name)   의 결과값인   song이 생성됨


ex2) 
date명령을 이용하여, 현재날짜의 파일 생성

[root@system1 test]# date +%y%m%d                 #date +%y%m%d 를 명령 실행결과, 년/월/일 결과가 출력됨
171223


[root@system1 test]# touch $(date +%y%m%d)     #   $(명령) 은  변수=명령결과  라고했으니,  
          date +%y%m%d명령결과   touch 명령결과(171223) 수행
[root@system1 test]# ls
171223  lost+found  song
[root@system1 test]# ll
합계 16
-rw-r--r--. 1 root root     0 12월 23 15:56 171223      #  touch $(date +%y%m%d)의 결과로 파일이 생성됨


3) ${ }

${} =  parameter substitution  = 쉬운말로  변수대체자

변수와 쓰임새는 똑같다, "변수${변수} + 상수" 형태를 출력하고자 주로 쓴다

[root@system1 test]# test=abcdef                

[root@system1 test]# echo $test                            #$test는   = abcdef  라는 변수다

abcdef


abcdefghijk   연달아 쓰고 싶다면


[root@system1 test]# echo $testghijk               #testghijk라는 변수가 없기때문에, 출력이 없다.
- 아무것도 출력하지 않음.     

${test}를 사용하면 결과는 달라진다


[root@system1 test]# echo ${test}ghijk                   

abcdefghijk


즉, test변수값 ( ${test} ) + 상수 ghijk가 합쳐딘 결과다


반응형

'프로그래밍 > 쉘프로그래밍' 카테고리의 다른 글

파일명 변환 쉘  (0) 2019.03.07
cut 명령 예제  (0) 2018.11.26
인자값이해, 인자값 쉘프로그램  (0) 2017.12.21
반응형

-인자값, argument,, 

:위 용어 용어를 정의하는것 보단, 아래 예시를 보면 한번에 이해할수 있다.


-예제


sh /tmp/test.sh  AAA BBB CCC

-> test.sh 쉘을 실행시킬때,  AAA ,BBB, CCC  명령줄에 부가적으로 붙어지는 것들이 인자값이라고 이해하면 편함


sh /tmp/test.sh  AAA BBB CCC


AAA BBB CCC 3개가 차례대로 이어진다.  이를 인자 변수로 얘기하면


$숫자 = 인자를 차례대 즉,

$1 = AAA , $2 = BBB  , $3 = CCC  된다.


$#  (인자의 총 갯수) 

위는 sh /tmp/test.sh  AAA BBB CCC   와 같이 인자는 총 3개




-인자값을 테스트해본 Shell Program

#!/bin/bash


if [ "$#" -eq "0" ] ##  IF[ $# -eq 0 ] $#로 인자값의 총 갯수가  0보다 크냐??

then ##     yes일 경우( 인자값 = 0)

echo "Usage : /tmp/song argument"

else if [ "$#" -gt "2" ] ##   no, 인자값이 (2개 이상일경우)

then

echo "Good your argument count is " "$#" ##   인자값 count 하여 표시


fi

if [ "$#" -lt "3" ] ##   IF[ $# -eq 0 ]   no, 인자값이 (3개 보다 작은경우)

then

echo "argument count is " "$#" "AND"  "$1"   " "  "$2"     # d인자값 count표시 ,   각 인자 정보 ($1, $2)   

fi        인자값이 3보다작으니 $1, $2 만 표시한다.


fi



ㅁ테스트결과


-인자값이 2이상인경우 


[root@station tmp]# sh /tmp/song.sh ddd dddd sdfsdf

Good your argument count is  3



else if [ "$#" -gt "2"]  구문이 실행되어 , echo "Good your argument count is " "$#" (인자갯수만 표시)



-인자값이 3개  미만, 즉 2개

[root@station tmp]# sh /tmp/song.sh ddd dddd

Good your argument count is  2 AND ddd ,  dddd

if [ "$#" -lt "3" ] 실행되어, echo "argument count is " "$#" "AND"  "$1"   " "  "$2"    (인자값 ddd,  dddd를 출력)



반응형

'프로그래밍 > 쉘프로그래밍' 카테고리의 다른 글

파일명 변환 쉘  (0) 2019.03.07
cut 명령 예제  (0) 2018.11.26
일반변수$, $(), ${} 의 이해  (0) 2017.12.23

+ Recent posts