1、一副圖簡單了解下docker的布局,它是虛擬的,docker分為私服、鏡像、容器三個模塊
一般從私服pull鏡像,鏡像run一個容器,我們把容器作為一個虛擬服務,里面可以獨立運行進程有獨立的內網Ip,
通常把tomcat、工程掛到容器中運行
2、快速安裝Docker(在centos、ubuntu上的差異不大)
sudo apt-get update sudo apt-get install docker.io
#啟動服務和守護進程
service docker.io status
service docker.io start
3、下載鏡像文件(pull命令下載,從私服隨便下載一個鏡像,自己重新制作)
#pull 后面是鏡像名稱,你可以先docker search java 在私服搜索java 是否有這個鏡像再下載
sudo docker pull java
#下載好后 查詢鏡像是否存在
sudo docker images

3、下載好鏡像創建、然后制作容器
鏡像下載到本地以后,就可以使用Docker運行,
通過下面的命令參數啟動容器,
docker run <相關參數> <鏡像 ID> <初始命令>
-i:表示以“交互模式”運行容器
-t:表示容器啟動后會進入其命令行 ()
-v:表示需要將本地哪個目錄掛載到容器中 (這個目錄和本地是交互的,目錄下的文件在容器和本地上是可以相互看見的)
格式:-v <宿主機目錄>:<容器目錄>
#我的相關程序都在當前機器的/data/software/目錄下,並且想把它掛載到容器的相同目錄下: sudo docker run -i -t -v /data/software/:/data/software/ ae983d5e88ce /bin/bash
4、創建好容器自動進入了容器 然后安裝JDK和Tomcat等(這步最重要的就是配置tomcat環境,配置不好重啟容器不能運行)
(可以用命令(docker cp 文件名稱 容器id : 容器下的路徑)把相應的安裝文件復制到容器中 )
安裝相關的JDK等程序,這里全部安裝到/data/目錄: tar -zxvf jdk-7u25-linux-x64.tar.gz -C /data/ mv jdk1.7.0_25 jdk unzip apache-tomcat-7.0.54.zip -d /data/ mv apache-tomcat-7.0.54 tomcat 配置環境變量 vi /etc/profile 添加下面的配置:
export HISTTIMEFORMAT
JAVA_HOME=/data/jdk1.7
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
export CATALINA_HOME=/data/tomcat
export CATALINA_BASE=/data/tomcat
保存並退出,設置立即生效: source /etc/profile
5、啟動tomcat時必須通過TOMCATHOME/bin/catalina.sh實現,不能使用TOMCAT_HOME/bin/startup.sh啟動,否則腳本執行后容器會馬上退出。
vi /data/start.sh 添加以下內容: #!/bin/bash # Export environment variable source /etc/profile # Start tomcat bash /data/tomcat/bin/catalina.sh run 添加可執行權限: chmod u+x /data/start.sh
#然后退出 容器
exit
#查看容器
docker ps #查看運行的容器
docker ps -a #查看 所有容器
docker start 容器Id #啟動容器
docker restart 容器id #重啟
docker stop 容器id #停止容器
docker rm 容器id #刪除容器
docker rmi 鏡像id #刪除鏡像
#當你重啟容器時 docker ps 還看到容器啟動成功 說明你成功了
6、這就制作好容器了,然后你可以提交鏡像(以后可以直接用這個鏡像創建容器,容器里面就有java+tomcat環境了)
#提交容器 創建鏡像 docker commit 容器ID 鏡像名稱 sudo docker commit 39b2cf60a4c1 flm/java
#查看是否創建鏡像
sudo docker images
#如果看到 flm/java 這個鏡像存在說明你成功了
#docker inspect可以查看新創建的鏡像的詳細信息:
sudo docker inspect flm/java
7、運行新創建的容器( -p 18080:8080 是把 服務器的端口18080映射到容器端口8080 ,javaweb 命名容器名稱, /data/start.sh 啟動文件)
docker run -d -p 18080:8080 --name javaweb flm/java /data/start.sh -p:表示宿主機與容器的端口映射,此時將容器內部的 8080 端口映射為宿主機的 18080 端口, 這樣就向外界暴露了 18080 端口,可通過 Docker 網橋來訪問容器內部的 8080 端口了。 查看后台是否啟動成功: docker ps
然后訪問 http://192.168.10.16:18080 說明你成功了
哈哈哈 thans