[ETC] Docker 포스팅 작성중

포스팅을 위해 테스트 중인 상황이며 완료되면 정리하여 업로드 할 예정입니다.

  • CentOS7 Base 이미지 생성 - http://wiki.rockplace.co.kr/pages/viewpage.action?pageId=3216578
  • 이미지로드 - https://miiingo.tistory.com/182
  • 현재OS - https://lascrea.tistory.com/150
  • Dockerfile - https://github.com/CentOS/CentOS-Dockerfiles/tree/master/systemd/centos7

도커설치

1
2
sudo yum install docker
sudo yum install bash-completion

도커 실행

1
systemctl start docker

버전 확인

1
docker version

설치확인

1
docker run hello-world

======================================

현재 OS를 tar 파일로 묶음

1
sudo tar --numeric-owner --exclude=/proc --exclude=/sys -cvf centos7-test01.tar / 

docker 서버로 tar 파일을 복사 후 docker에 import

1
sudo cat centos7-test01.tar | sudo docker import - centos7-test01.tar

이미지 확인

1
sudo docker images

import 정상 확인

1
sudo docker run -i -t centos7-test01.tar cat /etc/redhat-release 

도커 컨테이너 실행

  • /sbin/init 과 –privileged 을 입력하는 이유는 /bin/bash 로 컨테이너를 실행 했을 때 systemctl 명령어가 사용되지 않는 경우가 있기 떄문에
1
2
sudo docker run --privileged -d --name 사용할컨테이너명 이미지이름 /sbin/init
sudo docker run --privileged -d --name centos7-test01 centos7-test01.tar /sbin/init

도커 컨테이너 접속

  • /bin/bash 를 입력하는 이유는 해당 파일을 bash shell로 실행시키겠다는 의미이다.
  • 만약 /bin/bash 를 입력하지 않고도 정상실행이 된다면 이는 bash shell이 default shell로 설정 되어 있기 때문이다
  • 그리고 쉘 스크립트를 보다보면 어떤것은 /bin/bash 로 되어있고, 어떤것은 /bin/sh 로 되어 있는데, /bin/sh 가 bash 의 심볼릭 링크이다. 즉 같은 의미라는 뜻
1
2
sudo docker exec -it 컨테이너ID /bin/bash
sudo docker exec -it 16f4f93abac8 /bin/bash

도커 컨테이너 종료

1
sudo docker stop 컨테이너ID

도커 컨테이너 삭제

1
sudo rm -f 컨테이너이름

도커 컨테이너 전체 종료 및 삭제

1
sudo docker rm -f $(sudo docker ps -qa)

Tags:

Updated:

Leave a comment