가령 웹서버 준비해놓고 나중에 템플릿 이미지처럼 써 먹기 위해 이미지로 저장하고 싶을 경우 commit 옵션을 사용하면 됩니다.



Q) -p 옵션으로 포트포워딩 및 생성한 새 컨테이너에 

- yum install net-tools 과 yum install httpd 설치한 후 

이 상태를 image 로 저장하고 싶다.

#docker commit [ Container Name ] [ Image TAG ]

-a "TEST"  : 서명 붙이기

-m "name" : 이름 붙이기

[root@docker ~]# docker commit -a "TEST" centos_apm apache:0.1

sha256:4dd69d0e612362ccf64d455d658d6a309bc17fcb55db6f707e125e3e6bc87662

[root@docker ~]# docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

apache              0.1                 4dd69d0e6123        9 seconds ago       335 MB

docker.io/centos    latest              9f38484d220f        2 months ago        202 MB

[root@docker ~]#


블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,
OS : CentOS 7.6 Lastest minimal 


[ Docker 설치 ] 
#yum install epel-release
#yum install docker

설치 후 서비스 시작 및 자동서비스 등록
#systemctl start docker
#systemctl enable docker


[ 이미지 리스트 ] 
#docker search [ OS ]  ( ubuntu , centos .. .. ) 


[ 이미지 다운로드 ] 
#docker pull [ SEARCH Image 명 ] 


[ 다운로드한 이미지 리스트 확인하기 ] 
#docker images
REPOSITORY         TAG           IMAGE ID           CREATED           SIZE
docker.io/tutum/centos latest 99a633ad346f 3 years ago 297 MB


[ 컨테이너 생성하기 ] 
#docker run -i -t --name [ 이름 ] [ Image ID ] [ Shell ] 

-i : 인터렉티브
-t : tty ( 터미널 콘솔 사용 ) 
--
image id :  images ID 나 이름을 직접 입력 가능
shell : 해당 image 에 있는 Shell 로 시작 가능
--name [ Alias ] 원하는 머신명 생성 가능

-p  [Origin Port | Docker Port ] : 콘솔 호스트(로컬)의 포트를 만드는 컨테이너의 포트로 리다이렉팅 한다.
( 웹서버 같은 경우 서비스 하려면 -p 80:80 같은걸로 주면 되겠다.  iptables 의 Docker Chian 에 알아서 추가해주는 명령이다 ) 

#[root@docker ~]# docker run -i -t --name CentOS-TEST01 99a633ad346f /bin/bash
[root@90bd5ec70287 /]#

간단하게 만들어지고 접속 되었음.
컨테이너를 콘솔 접속중에 원격처럼 exit 를 쳐서 빠져나오면, 컨테이너가 꺼진다. 주의.
 
[root@90bd5ec70287 /]# exit
exit
[root@docker ~]#
[root@docker ~]# docker attach CentOS-TEST01
You cannot attach to a stopped container, start it first

콘솔(로컬머신) 에서 접속한 컨테이너를 빠져 나올땐 ctrl + p 다음에  ctrl + q 를 눌러서 빠져 나오자.


[ 실행중인 컨테이너 확인하기 ] 
#docker ps

[ 특정 컨테이너 시작하기 ] 
#docker start image id 또는 설정한 name 입력

[root@docker ~]# docker start CentOS-TEST01
CentOS-TEST01
[root@docker ~]#

[ 컨테이너 재시작 하기 ]
[root@docker ~]# docker restart CentOS-TEST01
CentOS-TEST01
[root@docker ~]#

[ 켜진 컨테이너에 접근하기 ]
[root@docker ~]# docker attach CentOS-TEST01
[root@90bd5ec70287 /]#


[컨테이너 끄기]
[root@docker ~]# docker stop CentOS-TEST01
CentOS-TEST01

[컨테이너 삭제]
이미지 다운 후 생성했던 컨테이너 ( name : CentOS-TEST01 ) 이 삭제됌
[root@docker ~]# docker rm CentOS-TEST01
CentOS-TEST01

[컨테이너 이미지 삭제]
컨테이너 이미지는 LAYER 단계적인 증분 업데이트이므로, 자식 컨테이너들을 모두 삭제해야 삭제할 수 있다.
( docker ps -a 에서 남아있는 자식이 없어야 함 )

[root@docker ~]# docker rmi 99a633ad346f  ( IMAGE ID ) 
Untagged: docker.io/tutum/centos:latest
Untagged: docker.io/tutum/centos@sha256:b4de18abfef698f6ae3a4921d6f58edef8fc770c6ee5da7636fa4ea51ab545c5
Deleted: sha256:99a633ad346ff9debae2e18ef28e36da72c4535d936500e497cd34377173d4b6
Deleted: sha256:e72d160abbd5585d403996036763c88e9624c70d9d80d6fb0e1ccb2c49b8a26d
Deleted: sha256:8f201733668a3ce8ce77a0dc8b2d7249cdc70b1022a7fc78650527a6f3ec09b6
Deleted: sha256:8fdcefb6d553194a6881387055c1d4110bc385d3dbf4d51b0aa07f1251e877ef
Deleted: sha256:8f98c28a55c2e54cf8b8815d843cbfaf1495dd0bf601774f27da1cbe80183225
Deleted: sha256:6163e9854471a9b6c817b9514d6b8d1cf7be7684fa0c52d76d42188e28785859
Deleted: sha256:85946201865d0456e3d2db4df8699ecc017f2a8df599a1c0b241d30e8f942ed6
Deleted: sha256:3b6d6efff38bc7552b4e42d78a142460dd122efe3f86a921298e82d60f770c85
Deleted: sha256:28508c96f9bffc44568bdcf1d0cd20a0357a106a18440302ba67ee4c68a3ccad
Deleted: sha256:33b3813290610f3880214f35c32d2175adfcc75500cae48dfdbcbcf31928a1ac
Deleted: sha256:ce3c560f1cfc18c6febc0a8ed4f8330d32df64e52fa0b34b82d42ad35406ac39
Deleted: sha256:cf032be00d9aedaf94363af683f83fda44140490759c1c048584dc9b3dd1f34e
Deleted: sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
[root@docker ~]#

깔끔하게 초기상태로 돌아왔다.


'Linux ( Cent OS )' 카테고리의 다른 글

haproxy.cfg 기본 설정  (7) 2019.06.24
0. HAProxy 1.8 Configure Manual ( 번역 중 .. )  (0) 2019.06.19
블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,