1、docker
docker是一個打包應用的工具
非常強大,能把作業系統也打在包裡,進行無差別部署和執行。
所以docker也被認為是建立在作業系統上的虛擬機器。
2、基本概念
映象(image):
類似作業系統的映象,包括一個完整可執行的系統,作業系統、基礎元件、應用程式都可以打包在一個映象中。
容器(container):
容器是某一個docker映象的執行例項,可以啟動、關閉、刪除,可以理解成正一個linux系統,同一臺機器上的多個container互相隔離。
3、簡單使用
#安裝docker(centos6.5以上)
yum install -y epel-release
yum update -y device-mapper
yum erase -y docker
yum install -y docker-io
service docker status
#從官方倉庫中下載image
docker pull centos
docker pull ubuntu
#檢視本地可用的image
docker images
#啟動一個centos的dokcer容器,直接進入bash
docker run -it centos bash
#後臺啟動一個centos的dokcer容器
docke r run -d -it centos
#後臺啟動一個centos的dokcer容器,監聽80埠,對映到容器裡的8080埠
docke r run -p 80:8080 -d -it centos
#檢視正在執行的docker容器
docker ps
#檢視所有docker容器
docker ps -a
#在執行狀態的容器裡啟動一個bash(進入正在執行的容器)
docker exec -it $container_id bash
#啟動/關閉/重啟容器
docker start/stop/restart $container_id
#刪除容器
docker rm $container_id
4、建立自定義映象,打包應用
mkdir test_image
cd test_image
#建立Dockerfile
vi Dockerfile
# 自定義image
#繼承一個已有的映象,這裡用cetos作為基礎
FROM centos
MAINTAINER Luo <luochongyang@yazuo.com>
#安裝一些基礎元件
RUN yum install -y java-1.7.0-openjdk
#把應用程式放入映象(app1.tar.gz 事先放在同級目錄下)
#繼承一個已有的映象,這裡用cetos作為基礎
FROM centos
MAINTAINER Luo <luochongyang@yazuo.com>
#安裝一些基礎元件
RUN yum install -y java-1.7.0-openjdk
#把應用程式放入映象(app1.tar.gz 事先放在同級目錄下)
RUN mkdir /yazuo_apps/
ADD app1.tar.gz /yazuo_apps/
ADD app1.tar.gz /yazuo_apps/
docker build -t app1:1.0 .
#啟動映象,並啟動app1,把本機的8080埠對映到容器的8080埠
docker run -d -p 8080:8080 -it /yazuo_apps/app1/start.sh
#匯出映象(直接通過檔案來分發映象到其他機器)
docker save -o app1-1.0.image app1:1.0