Docker & Kubernetes

(Redhat) Docker 환경 세팅

포드맨 2024. 5. 8. 17:41

[docker 패키지 저장소 url]
https://download.docker.com/linux/rhel/docker-ce.repo

 

1. docker 레포지토리 구성

 

$ dnf     config-manager     --add-repo      https://download.docker.com/linux/rhel/docker-ce.repo


 

2. docker 환경에 필요한 패키지 설치

$ yum    install     docker-ce                  
$ yum    install     docker-ce-cli         
$ yum    install     containerd.io                     

 

 

$ yum    install     docker-ce      docker-ce-cli       containerd.io      --allowerasing

   //  따로따로 설치하지 말고, 3개 동시에 설치 진행하기. 

  //  --allowerasing 은 충돌하는 패키지를 변경하는 명령어

  //  rhel8.4에서 테스트했는데, (podman, buildah) 관련해서 충돌나는게 많다.            
          

 

 

3. docker 서비스 동작 확인           

$ which    docker            

 

$ ls   -lh    /usr/lib/systemd/system   |   grep   docker
 // 해당 경로에 docker 패키지가 있어야 systemctl 로 docker 를 동작할 수 있음        

 

 

$ systemctl     status     docker               
$ systemctl     start       docker             
$ systemctl     enable    docker                     


$ docker    version          
  // server 와 client 섹션으로 나뉘어져 있음              
  // server 와 client 버전이 동일한지 확인          


$ docker     info

 

$ docker     login    -u    <docker ID> 

        Password :  <docker PW>


$ docker      pull      httpd     

 // hub.docker.com 에 있는 httpd:lastest 이미지 다운로드


 


4. 컨테이너 생성하기

$ docker      pull       nginx     

$ docker      run      -d      --name       {web_test}          nginx:lastest    

$ docker      exec     -it        {web_test}         uname  -a     

 

$ docker      exec     -it        {web_test}         bash     // web_test 컨테이너 접속


$ docker      run      -d      --name       {web_test}        -p        8888:80        nginx 

 

$ docker      run      -d      --name       {web_test}        -v    /etc/yum.repos.d:/etc/yum.repos.d        nginx 



$ curl       127.0.0.1:8888         (host에 httpd 서비스가 없어도 됌) 

 


$ ps    -ef    |     grep    80  
 // docker-proxy  -container-port 80 프로세스 구동중임.
 // nginx 가 80 port 사용함.

 

 

4-1. 컨테이너 삭제하기

$ docker      stop             {web_test}

$ docker      remove        {web_test}

 

 


5. 컨테이너 명령어  
  

$ docker      run      -d      --name       {web_test}       --hostname=rhel84        nginx   
 

$ docker      container       inspect       {web_test}      

$ docker      container       inspect       {web_test}    |   grep   {IPAddress}     
$ docker      container       inspect       {web_test}    |   grep   {Gateway}         
      
   >  ping  {172.17.0.1}     // docker Gateway


 


6. docker 이미지 개인저장소에 업로드 (hub.docker)

-- docker images 생성하기

$ docker      tag        nginx:latest              podmanrun/test-nginx : 1.0

                                     (기존 images)            (docker계정명)  / (생성하는 image명) : Tag

 



$ docker     login 

$ docker     info     |    grep     Username


 


-- hub.docker 에 업로드

$ docker       push       podmanrun/test-nginx:1.0