docker快速入門+搭建javaweb環(huán)境

一、windows安裝

不要安裝舊的 boot2docker包,直接安裝DockerToolbox。

一路next,安裝完成以后

試用

1、以管理員身份運(yùn)行 docker quickstart terminal。

docker version

因種種原因,重裝了不下5次,終于成功了!

二、centos安裝

先更新centos版本

sudo yum update

sudo yum -y install docker-io

需要切換到root用戶

sudo su

service ?docker start

三、基礎(chǔ)概念

LXC

linux container

百度百科:http://baike.baidu.com/link?url=w_Xy56MN9infb0hfYObib4PlXm-PW02hzTlCLLb1W2dbdQr4AJcrWuxoe9ng9SxYgORKeAQSk0TJOXEL8BnEqK

docker在linux內(nèi)核容器的基礎(chǔ)上提供了更高層的控制工具。

跨主機(jī)部署:通過鏡像將應(yīng)用程序和所依賴的文件打包到同一個(gè)鏡像文件中。

以應(yīng)用為中心:dockerfile機(jī)制大大簡(jiǎn)化和規(guī)范了應(yīng)用的部署方法。

自動(dòng)構(gòu)建:從源碼自動(dòng)構(gòu)建成鏡像。

版本管理:鏡像版本管理。

組件重用:任何鏡像都可以是基礎(chǔ)鏡像。

共享:公共鏡像,docker registry,docker hub。

工具生態(tài)鏈。

虛擬機(jī)

虛擬機(jī)是對(duì)硬件資源進(jìn)行劃分。

hypervisor

百度百科:http://baike.baidu.com/link?url=32LeXPssolv90-9E2jNHJfSY86zRCTqm6dKcn1ERZfQghBkRTTj84jM-EyvT56RTEvAeCZ9RGgJifa-s0gRY0q

虛擬機(jī)獨(dú)占資源,docker 不同容器之前可以共享部分操作系統(tǒng)資源。

容器

容器=cgroup+namespace+rootfs+容器引擎。

NameSpace:命名空間,主要做訪問隔離。(linux內(nèi)核6中namespace)

Cgroup:control group,控制組,主要做資源控制。 (控制進(jìn)程對(duì)系統(tǒng)資源的試用,包括cpu,內(nèi)存,block I/O,網(wǎng)絡(luò)帶寬)

rootfs:文件系統(tǒng)隔離。rootfs=Root Fils System所謂的rootfs,根文件系統(tǒng),就是那些,能讓操作系統(tǒng)正常運(yùn)行的,文件夾和文件的大集合

容器引擎:生命周期控制。

鏡像

docker image 是用來啟動(dòng)容器的只讀模板,是容器啟動(dòng)所需的rootfs。

remote-dockerhub.com/namespace/bar:latest

制作、管理、上傳、下載鏡像

下載鏡像

docker pull busybox

導(dǎo)出鏡像

docker save -o busybox.tar busybox

導(dǎo)入鏡像

docker load -i busybox.tar

查看元數(shù)據(jù)

docker inspect busybox:latest

下載centos

docker pull centos

鏡像確認(rèn)

docker images centos

運(yùn)行centos

docker run -i -t centos /bin/bash

ls /etc

安裝wget,制作成一個(gè)新鏡像

docker run -i -t centos /bin/bash

# yum install -y wget

安裝完成以后退出。

# exit

每次執(zhí)行docker run都會(huì)去獨(dú)立的創(chuàng)建一個(gè)新的container來執(zhí)行程序,輸入docker ps -a 找到剛才安裝過wget工具的container ID,要把這個(gè)container重新做成一個(gè)新的image模版。

docker ps -a

制作一個(gè)新的鏡像

docker commit 541 zuimao-centos

docker images

執(zhí)行wget

docker run -t -i --rm=true e8 wget www.baidu.com

登錄 docker hub

docker login -u user -p pass

四、linux宿主中搭建java web環(huán)境

下載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復(fù)制到虛擬機(jī)中

虛擬機(jī)如何與主機(jī)之間直接復(fù)制粘貼文件

http://jingyan.baidu.com/article/c33e3f48a5c153ea15cbb5b2.html

文件先復(fù)制到了桌面, 通過 mv 指令移動(dòng)到 /mnt/soft中。

將虛擬機(jī) 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

注意,再啟動(dòng)鏡像就是新生成的鏡像了

docker run -i -t -v /mnt/soft/:/mnt/soft c9 /bin/bash

可以看到剛才安裝的 tomcat 和java 都在。

配置java和tomcat環(huán)境變量

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后,讓設(shè)置立即生效

source /etc/profile

容器啟動(dòng)時(shí)啟動(dòng)tomcat

vi ?/root/run.sh

加入以下代碼

#!/bin/bash

source /etc/profile

# Start tomcat

bash /usr/tomcat/bin/catalina.sh run

退出vi后,為運(yùn)行腳本添加執(zhí)行權(quán)限

chmod u+x /root/run.sh

退出當(dāng)前容器后,重新生成鏡像

exit

docker ps -a

docker commit c9b270c008fa zuimao-centos

啟動(dòng)容器內(nèi)部的 Tomcat 服務(wù)

不再進(jìn)入容器的命令行,而是直接啟動(dòng)容器內(nèi)部的 Tomcat 服務(wù)

docker run -d -p 18080:8080 ?--name javaweb zuimao-centos /root/run.sh

確認(rèn)是否啟動(dòng)成功

docker ps

查看docker container ip地址

docker ?inspect fe

通過宿主ip訪問

ifconfig -a

提交鏡像到docker倉(cāng)庫

登錄

docker login

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容