출처 : http://www.server-world.info/en/note?os=CentOS_7&p=docker&f=1
0. 사전 설치
CentOS 7 minimal 설치 및 준비
필요 PKG 설치 및 업데이트
# yum install -y ntp wget; yum update -y
# systemctl enable ntpd; systemctl start ntpd
1. 방화벽 해제 및 SELinux 해제
# systemctl stop firewalld
# systemctl disable firewalld
# vi /etc/sysconfig/selinux
7 SELINUX=disabled
SELinux 는 재시작 해야 풀린다.
# reboot
2. Docker 설치
# yum -y install docker
# systemctl enable docker
# systemctl start docker
host로 사용할 centos 공식 이미지 Container 생성, 환영 문구 입력
# docker run centos /bin/echo "Welcome to the Docker World"
3. Docker 실행
i와 t 옵션을 주어 centos 이미지를 bash 쉘로 docker 실행
(옵션 주지 않으면 들어가지지 않는다. 옵션에 대한 연군 필요)
# docker run -i -t centos /bin/bash
Docker system 의 정보 확인
[root@0cf52e8ba14a /]# uname -a
Linux 0cf52e8ba14a 3.10.0-123.el7.x86_64 #1 SMP Mon Jun 30 12:09:22 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
세션 종료
[root@0cf52e8ba14a /]# exit
exit
#
4. Docker 세션 관리
세션 종료 없이 로그아웃 하기 : Ctrl+p, Ctrl+q 차례대로 입력
[root@d4add7d10c96 /]# [root@localhost ~]#
세션 종료 없이 종료한, 즉 docker 의 실행 중인 프로세스 확인
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d4add7d10c96 centos:7 "/bin/bash" 4 minutes ago Up 4 minutes thirsty_bartik
다시 해당 세션으로 붙기 (Container ID 필요)
# docker attach d4add7d10c96
세션 연결되어 있는, 실행 되어 있는 컨테이너 shutdown
# docker kill d4add7d10c96
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5. 이미지 관리
존재하는 이미지 보기
# docker images
centos 이미지에게 직접 명령어 실행
# docker run centos /bin/bash -c "yum -y update; yum -y install httpd"
내가 최근에 쳤던 명령어가 작동 했다는 것 확인
# docker ps -a | head -2
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b0eef33afa44 centos:7 "/bin/bash -c 'yum - 2 minutes ago Exited (0) 56 seconds ago thirsty_albattani
지금 상태의 이미지를 새로운 이미지로 저장 - 스냅샷
# docker commit b0eef33afa44 my_image/centos_httpd
48a0f44b93a5a85cee79add36686c6e590463092cb96bf80a5dbc1c156f3d278
새롭게 추가된 이미지가 보인다.
# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
my_image/centos_httpd latest 48a0f44b93a5 About a minute ago 478.2 MB
centos 7 8efe422e6104 3 weeks ago 224 MB
centos centos7 8efe422e6104 3 weeks ago 224 MB
centos latest 8efe422e6104 3 weeks ago 224 MB
내가 만든 이미지에 /usr/bin/which httpd 명령어를 실행 한 결과
# docker run my_image/centos_httpd /usr/bin/which httpd
/usr/sbin/httpd
[실습]
내 8081번 포트를 이미지의 80번 포트와 매핑시키면서 이미지에 접근
# docker run -it -p 8081:80 my_image/centos_httpd /bin/bash
[root@d4add7d10c96 /]# /usr/sbin/httpd &
[root@d4add7d10c96 /]# echo "httpd on Docker Container" > /var/www/html/index.html
세션 종료 없이 로그아웃(Ctrl+p, Ctrl+q 차례대로 입력)해서 실행되고 있는 상황 확인
[root@d4add7d10c96 /]# [root@localhost ~]#
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bf5e6b508e53 my_image/centos_httpd:latest "/bin/bash" 10 minutes ago Up 10 minutes 0.0.0.0:8081->80/tcp ecstatic_mcclintock
이제 같은 네트워크단에 있는 pc의 웹 브라우저에서 docker server ip:8081 로 들어가면 제대로 사용되고 있는 것을 알 수 있다.
[etc]
1) Ubuntu 14.04 install & Setting
# docker run -t -i ubuntu:14.04 /bin/bash
root@3eaaa23a2e66:/# ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
root@3eaaa23a2e66:/# date
Sat Jan 31 00:43:44 KST 2015
root@3eaaa23a2e66:/# apt-get install ntp -y
root@3eaaa23a2e66:/# service ntp start
* Starting NTP server ntpd
root@3eaaa23a2e66:/# update-rc.d ntp defaults
'Linux > CentOS' 카테고리의 다른 글
CentOS에 ntfs usb 마운트 (0) | 2015.06.05 |
---|---|
Linux GPT 파티션 (0) | 2015.06.04 |
CentOS 를 Windows의 Active Directory에 Join 시키기 (0) | 2015.04.09 |
Samba server - Windows에서 리눅스 공유폴더 사용 (0) | 2015.04.09 |
CentOS 6, 7 Minimal 에 Desktop(GUI 환경) 설치 (0) | 2015.04.09 |