一、windows安裝
不要安裝舊的 boot2docker包,直接安裝DockerToolbox。
一路next,安裝完成以后
試用
1、以管理員身份運行 docker quickstart terminal。
docker version
因種種原因,重裝了不下5次,終于成功了!
二、centos安裝
先更新centos版本
sudo yum update
sudo yum -y install docker-io
需要切換到root用戶
sudo su
service ?docker start
三、基礎概念
LXC
linux container
百度百科:http://baike.baidu.com/link?url=w_Xy56MN9infb0hfYObib4PlXm-PW02hzTlCLLb1W2dbdQr4AJcrWuxoe9ng9SxYgORKeAQSk0TJOXEL8BnEqK
docker在linux內核容器的基礎上提供了更高層的控制工具。
跨主機部署:通過鏡像將應用程序和所依賴的文件打包到同一個鏡像文件中。
以應用為中心:dockerfile機制大大簡化和規范了應用的部署方法。
自動構建:從源碼自動構建成鏡像。
版本管理:鏡像版本管理。
組件重用:任何鏡像都可以是基礎鏡像。
共享:公共鏡像,docker registry,docker hub。
工具生態鏈。
虛擬機
虛擬機是對硬件資源進行劃分。
hypervisor
百度百科:http://baike.baidu.com/link?url=32LeXPssolv90-9E2jNHJfSY86zRCTqm6dKcn1ERZfQghBkRTTj84jM-EyvT56RTEvAeCZ9RGgJifa-s0gRY0q
虛擬機獨占資源,docker 不同容器之前可以共享部分操作系統資源。
容器
容器=cgroup+namespace+rootfs+容器引擎。
NameSpace:命名空間,主要做訪問隔離。(linux內核6中namespace)
Cgroup:control group,控制組,主要做資源控制。 (控制進程對系統資源的試用,包括cpu,內存,block I/O,網絡帶寬)
rootfs:文件系統隔離。rootfs=Root Fils System所謂的rootfs,根文件系統,就是那些,能讓操作系統正常運行的,文件夾和文件的大集合
容器引擎:生命周期控制。
鏡像
docker image 是用來啟動容器的只讀模板,是容器啟動所需的rootfs。
remote-dockerhub.com/namespace/bar:latest
制作、管理、上傳、下載鏡像
下載鏡像
docker pull busybox
導出鏡像
docker save -o busybox.tar busybox
導入鏡像
docker load -i busybox.tar
查看元數據
docker inspect busybox:latest
下載centos
docker pull centos
鏡像確認
docker images centos
運行centos
docker run -i -t centos /bin/bash
ls /etc
安裝wget,制作成一個新鏡像
docker run -i -t centos /bin/bash
# yum install -y wget
安裝完成以后退出。
# exit
每次執行docker run都會去獨立的創建一個新的container來執行程序,輸入docker ps -a 找到剛才安裝過wget工具的container ID,要把這個container重新做成一個新的image模版。
docker ps -a
制作一個新的鏡像
docker commit 541 zuimao-centos
docker images
執行wget
docker run -t -i --rm=true e8 wget www.baidu.com
登錄 docker hub
docker login -u user -p pass
四、linux宿主中搭建java web環境
下載jdk和tomcat
下載jdk:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
下載tomcat:http://tomcat.apache.org/download-70.cgi
把jdk和tomcat復制到虛擬機中
虛擬機如何與主機之間直接復制粘貼文件
http://jingyan.baidu.com/article/c33e3f48a5c153ea15cbb5b2.html
文件先復制到了桌面, 通過 mv 指令移動到 /mnt/soft中。
將虛擬機 centos 的 /mnt/soft掛載到 鏡像中
docker run -i -t -v /mnt/soft/:/mnt/soft 2a /bin/bash
安裝jdk
yum -y installjdk-7u79-linux-x64.rpm
查找jdk rpm包安裝路徑
# rpm -qa
# rpm -qlrpm -ql jdk-1.7.0_79-fcs.x86_64
可以看到是安裝在 /usr/java 下
安裝zip uzip
# yum install zip unzip
安裝 tomcat
unzipapache-tomcat-7.0.70.zip -d /usr
mvapache-tomcat-7.0.70.ziptomcat
中途退了出來,重新生成一下鏡像
docker ps -a
docker commit 68 zuimao-centos
注意,再啟動鏡像就是新生成的鏡像了
docker run -i -t -v /mnt/soft/:/mnt/soft c9 /bin/bash
可以看到剛才安裝的 tomcat 和java 都在。
配置java和tomcat環境變量
vi /etc/profile
加入以下代碼
#set java
export JAVA_HOME=/data/jdk
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
#set tomcat
export CATALINA_HOME=/data/tomcat
export CATALINA_BASE=/data/tomcat
退出vi后,讓設置立即生效
source /etc/profile
容器啟動時啟動tomcat
vi ?/root/run.sh
加入以下代碼
#!/bin/bash
source /etc/profile
# Start tomcat
bash /usr/tomcat/bin/catalina.sh run
退出vi后,為運行腳本添加執行權限
chmod u+x /root/run.sh
退出當前容器后,重新生成鏡像
exit
docker ps -a
docker commit c9b270c008fa zuimao-centos
啟動容器內部的 Tomcat 服務
不再進入容器的命令行,而是直接啟動容器內部的 Tomcat 服務
docker run -d -p 18080:8080 ?--name javaweb zuimao-centos /root/run.sh
確認是否啟動成功
docker ps
查看docker container ip地址
docker ?inspect fe
通過宿主ip訪問
ifconfig -a
提交鏡像到docker倉庫
登錄
docker login