Docker 이미지 및 명령어 모음

2023. 5. 16. 11:24·Container
728x90
반응형

도커 이미지란?

  • Container에 실행 가능한 파일 및 설정 값을 포함하고 있는 것 

 

도커를 사용하는 이유?

  • 가볍고 빠르다.

 

도커의 저장 방식

  • Layer 저장 방식

## 아래 처럼 한층, 한층 다운로드 받는 방식이 Layer방식

Image 경로 

  • tag를 이용하여 image를 URL 방식으로 관리 

도커 명령어 모음

 

docker tag httpd:latest ku****/test:httpmy

## docker의 tag httpd:latest를 ku****/test:httpmy로 설정

 

docker pull nginx:latest 

## docker pull : 도커에서 이미지를 다운로드 받는 명령어

## nginx 다운로드

## :lastes를 안 붙이면 최신버전을 다운로드 받습니다.

 

docker images

## 도커에서 가지고 있는 image 확인하는 명령어 

 

docker run -itd [images]

## run -itd 데몬인지, 쉘인지 확신이 안 들고 docker를 실행하고 싶을 때 사용하는 명령어

## docker ps를 통해서 실행되고 있는지 확인할 수 있습니다.

 

docker run -itd --name a1 alpine

## --name을 통해서 names를 변경할 수 있습니다.

 

docker rm -f a1 

## names으로 지우는 방법 

## rm은 지우는 것, -f는 실행되고 있는 걸 지우는 것, a1은 names

 

docker run -it --name 

##-i 대화형, -t tty 형식

## 쉘형식으로 진입

 

## ctrl+q+p를 눌리면 container가 살아있는 형태에서  쉘에서 빠져 나올 수 있습니다.

 

docker attach a2

##다시 a2에 접속하고 싶을 때 쓰는 명령어입니다.

 

docker run -itd -p 60080:80 --name h2 httpd

## 호스트 포트를 60080을 80으로 매핑

 

ss -nat 

## 리슨 포트 확인하는 명령어 

P.S Docker의 포트는 iptables의 영향을 받음

 

docker exec -it h1 /bin/bash

##foreground로 실행되는 걸 실행하고 싶을 때 

## exec 실행, -it 대화형+tty, bin/bash로 실행

 

docker create -p 60080:80 --name n1 nginx

## create 생성, -p 포트매핑 , --name 이름 생성

##상태가 create 따라서 run해줘야합니다. 실행 명령어는 docker start [name]

 

docker pause [name] 

docker unpause [name]

## 도커 상태를 pause로 바꿉니다.

 

docker run -d -p 60080:80 --name n1 nginx

## -d는 데몬을 실행할 때 사용하는 명령어

 

cat > /usr/share/nginx/html/index.html << END

## END를 만날 때 까지 실행

 

docker save -o http.tar httpd:latest

## http.tar 파일로 httpd데몬을 저장하겠다

 

 

scp http.tar root@10.0.0.2:/root

## scp로 http.tar파일을 10.0.0.2서버의 /root 디렉토리로  전달

 

 

docker load -i http.tar 

## http.tar파일 로드

 

-> save, load 는 이미지로 저장하고 전달하는 방식 

 

docker export -o test.tar c1

##파일 

 

->  import, export는 전달하는 대상 자체가 Container임, 환경변수하고 설정파일이 초기화 되는 단점이 있습니다.

 

 

docker import test.tar centos:7-1

## export로 가지고 온 것은 import로 해제

## centos:7-1은 내가 풀 이미지의 이름 

 

 

 

docker run -itd --name c12 centos:7-1
docker: Error response from daemon: No command specified

## 가져온 이미지를 import하면 cmd 명령어가 안 들어가 있어서 run 명령어가 안 먹습니다.

##  따라서 inspect로 확인해봐야 합니다.

 

아래와 같이 명령어를 입력해줘야 합니다.

docker import --change 'CMD ["/bin/sh"]' test.tar centos:7-2

 

[root@localhost ~]# docker inspect centos:7-1
[
    {
        "Id": "sha256:4c1116c38060625fc0a6a9b88810cf93ef3bb85f9542dbe7518cbeffa0d0370a",
        "RepoTags": [
            "centos:7-1"
        ],
        "RepoDigests": [],
        "Parent": "",
        "Comment": "Imported from -",
        "Created": "2023-05-16T11:36:18.613821375Z",
        "Container": "",
        "ContainerConfig": {
            "Hostname": "",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": null,
            "Cmd": null,
            "Image": "",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": null
        },
        "DockerVersion": "23.0.6",
        "Author": "",
        "Config": {
            "Hostname": "",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": null,
            "Cmd": null,
            "Image": "",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": null
        },
        "Architecture": "amd64",
        "Os": "linux",
        "Size": 203936095,
        "VirtualSize": 203936095,
        "GraphDriver": {
            "Data": {
                "MergedDir": "/var/lib/docker/overlay2/3ba9387b7ee553e2cd6acc07e44a2c105f28e43cbff2508a10d11a4b9063515f/merged",
                "UpperDir": "/var/lib/docker/overlay2/3ba9387b7ee553e2cd6acc07e44a2c105f28e43cbff2508a10d11a4b9063515f/diff",
                "WorkDir": "/var/lib/docker/overlay2/3ba9387b7ee553e2cd6acc07e44a2c105f28e43cbff2508a10d11a4b9063515f/work"
            },
            "Name": "overlay2"
        },
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:f605e1250dab91100ddda290da2917419276db28d24519d668ea9f7a922c9153"
            ]
        },
        "Metadata": {
            "LastTagTime": "2023-05-16T20:36:18.643077002+09:00"
        }
    }
]
[root@localhost ~]# docker inspect centos:7-2
[
    {
        "Id": "sha256:eeb6ee3f44bd0b5103bb561b4c16bcb82328cfe5809ab675bb17ab3a16c517c9",
        "RepoTags": [
            "centos:7"
        ],
        "RepoDigests": [],
        "Parent": "",
        "Comment": "",
        "Created": "2021-09-15T18:20:23.99863383Z",
        "Container": "5e4c7bfd35862166e9efd7532208300600114f0acff8f82fd537a57bdd523fe2",
        "ContainerConfig": {
            "Hostname": "5e4c7bfd3586",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "/bin/sh",
                "-c",
                "#(nop) ",
                "CMD [\"/bin/bash\"]"
            ],
            "Image": "sha256:ba35a4b787c8f11e3b6ed9248c7663b4f27459e9715a1ace09f966259d5ebc3a",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {
                "org.label-schema.build-date": "20201113",
                "org.label-schema.license": "GPLv2",
                "org.label-schema.name": "CentOS Base Image",
                "org.label-schema.schema-version": "1.0",
                "org.label-schema.vendor": "CentOS",
                "org.opencontainers.image.created": "2020-11-13 00:00:00+00:00",
                "org.opencontainers.image.licenses": "GPL-2.0-only",
                "org.opencontainers.image.title": "CentOS Base Image",
                "org.opencontainers.image.vendor": "CentOS"
            }
        },
        "DockerVersion": "20.10.7",
        "Author": "",
        "Config": {
            "Hostname": "",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "/bin/bash"
            ],
            "Image": "sha256:ba35a4b787c8f11e3b6ed9248c7663b4f27459e9715a1ace09f966259d5ebc3a",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {
                "org.label-schema.build-date": "20201113",
                "org.label-schema.license": "GPLv2",
                "org.label-schema.name": "CentOS Base Image",
                "org.label-schema.schema-version": "1.0",
                "org.label-schema.vendor": "CentOS",
                "org.opencontainers.image.created": "2020-11-13 00:00:00+00:00",
                "org.opencontainers.image.licenses": "GPL-2.0-only",
                "org.opencontainers.image.title": "CentOS Base Image",
                "org.opencontainers.image.vendor": "CentOS"
            }
        },
        "Architecture": "amd64",
        "Os": "linux",
        "Size": 203936249,
        "VirtualSize": 203936249,
        "GraphDriver": {
            "Data": {
                "MergedDir": "/var/lib/docker/overlay2/dbc65bdab54a3911cb9d736913e06360c57608f6e5be25cebe40a0d03b8a7e38/merged",
                "UpperDir": "/var/lib/docker/overlay2/dbc65bdab54a3911cb9d736913e06360c57608f6e5be25cebe40a0d03b8a7e38/diff",
                "WorkDir": "/var/lib/docker/overlay2/dbc65bdab54a3911cb9d736913e06360c57608f6e5be25cebe40a0d03b8a7e38/work"
            },
            "Name": "overlay2"
        },
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:174f5685490326fc0a1c0f5570b8663732189b327007e47ff13d2ca59673db02"
            ]
        },
        "Metadata": {
            "LastTagTime": "0001-01-01T00:00:00Z"
        }
    }
]

 

 

docker rm -f $(docker ps -aq)

##  실행중인 전체 컨테이너 삭제 

728x90
반응형

'Container' 카테고리의 다른 글

Docker save, load, tar, scp 명령어 실습  (0) 2023.05.17
Docker 복사(CP) 실습 예제  (0) 2023.05.17
Docker에서 HaProxy 활용하여 Load Balance  (0) 2023.05.16
Docker httpd image 생성 절차  (0) 2023.05.16
Container LifeCycle  (0) 2023.05.16
'Container' 카테고리의 다른 글
  • Docker 복사(CP) 실습 예제
  • Docker에서 HaProxy 활용하여 Load Balance
  • Docker httpd image 생성 절차
  • Container LifeCycle
Royal!
Royal!
Bachelor of Arts. Bachelor of Science in Engineering. Master of Science in Engineering (In Progress). Job Title: Infrastructure & Security & Cloud Engineer. Etc: Mentor at Fourth Industrial Revolution Center.
  • Royal!
    Security
    Royal!
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 운영체제
      • 네트워크 N
      • 클라우드
      • 서버
      • Container
      • 프로그래밍
        • Python_혼자 끄적끄적
        • Python_AI(영상처리)
        • 빅데이터
        • C_정보올림피아드 Language_Coder
        • C_QnA
      • 자격증
        • 정보보안기사
        • 정보처리기사
        • ADsP
        • CPPG
        • 보안법률
        • NCA~NCP
        • AWS Certified Solutions Arc..
      • 리버싱
        • 리버싱 걸음마
      • Wargame & CTF
        • Hackerschool FTZ
      • 기타 교육
        • KISA 정보보호제품실습군
        • 빅데이터_분석실무
        • 시큐어코딩진단전문교육(호남정보보호센터)
        • SW테스트 전문가 과정(ISTQB CTFL자격)
        • 정보보호 컨설팅 전문가 양성과정
      • 기타
        • 면접일지
        • 기타
        • 인턴활동
        • 논문 요약
      • K-Shield Jr
        • 악성코드분석
        • 침해사고분석
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    kernel 사용자 모드
    상태코드 304
    nce덤프
    geteuid()
    geteuid
    redirect 304
    fragment-free
    304 code
    rest api 공부
    nce dump
    kernel모드
    euid란
    getuid()
    rest api 논문
    swtich frame
    스위치 프레임 동작 방식
    switch forwarding mode
    getuid
    l2 스위치 프레임 전달 방식
    rest api 정리
    rest api 제약조건
    restful api 개념
    rest api 아키텍처
    네이버클라우드 ftp 설정
    kernel 구성요소
    uid란
    스위치 프레임 포워딩 방식
    rest api 문법
    euid가 중요한 이유
    304코드
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Royal!
Docker 이미지 및 명령어 모음
상단으로

티스토리툴바