본문 바로가기
Container

Docker 이미지 및 명령어 모음

by Royal! 2023. 5. 16.
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

최근댓글

최근글

Royal! © 2024