2017年07月27日 16:45:53 閱讀數:1381 標籤: docker 更多java
我的分類: dockerlinux
版權聲明:本文爲博主原創文章,未經博主容許不得轉載。 https://blog.csdn.net/u011382384/article/details/76208821web
CentOS 7 中 Docker 的安裝
Docker 軟件包已經包括在默認的 CentOS-Extras 軟件源裏。所以想要安裝 docker,只須要運行下面的 yum 命令(安裝時間挺長。。。):docker
[root@localhost ~]# yum install dockerapache
啓動 Docker 服務
安裝完成後,使用下面的命令來啓動 docker 服務,並將其設置爲開機啓動:vim
[root@localhost ~]# service docker start
[root@localhost ~]# chkconfig docker oncentos
製做容器
鏡像下載到本地之後,就可使用Docker運行,經過下面的命令參數啓動容器:tomcat
docker run <相關參數> <鏡像 ID> <初始命令> -i:表示以「交互模式」運行容器 -t:表示容器啓動後會進入其命令行 -v:表示須要將本地哪一個目錄掛載到容器中 (這個目錄和本地是交互的,目錄下的文件在容器和本地上是能夠相互看見的) 格式:-v <宿主機目錄>:<容器目錄>
個人相關程序都在宿主機器的/data/software/目錄下,而且想把它掛載到容器的相同目錄下:bash
[root@localhost ~]# sudo docker run -i -t -v /data/software/:/data/software/ 29ca665c0a12 /bin/bash服務器
安裝jdk/tomcat
建立好容器自動進入了容器 而後安裝JDK和Tomcat等(這步最重要的就是配置tomcat環境,配置很差重啓容器不能運行) 能夠用命令【docker cp 文件名稱 容器id : 容器下的路徑】把相應的安裝文件複製到容器中
安裝相關的JDK等程序,這裏所有安裝到/data/目錄:
[root@localhost ~]# docker cp jdk-8u77-linux-x64.tar.gz 29ca665c0a12:/data/
root@29ca665c0a12:/data# tar -zxvf jdk-8u77-linux-x64.tar.gz
root@29ca665c0a12:/data# mv jdk1.8.0_77 jdk[root@localhost ~]# docker cp apache-tomcat-7.0.68.zip 29ca665c0a12:/data/
root@29ca665c0a12:/data# unzip apache-tomcat-7.0.68.zip
root@29ca665c0a12:/data# mv apache-tomcat-7.0.68 tomcat
附:docker容器中安裝vim(apt-get install
)
root@29ca665c0a12:/data# apt-get update
root@29ca665c0a12:/data# apt-get install -y vim
配置環境變量
root@29ca665c0a12:/data# vim /etc/profile
添加下面的配置:
export HISTTIMEFORMAT JAVA_HOME=/data/jdk CLASSPATH=$JAVA_HOME/lib/ PATH=$PATH:$JAVA_HOME/bin export PATH JAVA_HOME CLASSPATH export CATALINA_HOME=/data/tomcat export CATALINA_BASE=/data/tomcat
保存並退出,設置當即生效:
root@29ca665c0a12:/data# source /etc/profile
Tomcat 啓動腳本
建立start.sh啓動腳本
root@29ca665c0a12:/data# vim /data/start.sh
添加如下內容:
#!/bin/bash # Export environment variable source /etc/profile # Start tomcat bash /data/tomcat/bin/catalina.sh run
添加可執行權限:
root@29ca665c0a12:/data# chmod u+x /data/start.sh
而後退出 容器
root@29ca665c0a12:/data# exit
#查看容器 docker ps #查看運行的容器 docker ps -a #查看 全部容器 docker start 容器Id #啓動容器 docker restart 容器id #重啓 docker stop 容器id #中止容器 docker rm 容器id #刪除容器 docker rmi 鏡像id #刪除鏡像 docker ps 還看到容器啓動成功 說明你成功了
提交鏡像
提交容器 建立鏡像 docker commit 容器ID 鏡像名稱
[root@localhost ~]# sudo docker commit 39b2cf60a4c1 tomcat/java
查看是否建立鏡像
[root@localhost ~]# sudo docker images
若是看到 tomcat/java 這個鏡像存在說明你成功了
docker inspect能夠查看新建立的鏡像的詳細信息:
[root@localhost ~]# sudo docker inspect tomcat/java
運行新建立的容器
( -p 18080:8080 是把 服務器的端口18080映射到容器端口8080 ,javaweb 命名容器名稱, /data/start.sh 啓動文件)
[root@localhost ~]# docker run -d -p 18080:8080 –name javaweb javazyl /data/start.sh
-p:表示宿主機與容器的端口映射,此時將容器內部的 8080 端口映射爲宿主機的 18080 端口, 這樣就向外界暴露了 18080 端口可經過 Docker 網橋來訪問容器內部的 8080 端口了。
異常:
啓動一個有 nat 映射端口的容器時,iptables 報 No chain/target/match by that name
找到系統的/etc/sysconfig/iptables ,若是沒有用如下命令保存一下,而後查看裏邊的內容
[root@localhost ~]# iptables-save > /etc/sysconfig/iptables
博主是沒有iptables這個文件,直接執行上面命令就建立了,從新啓動後就成功了(同時關掉了firewalld)
而後訪問 http://192.168.164.129:18080/
詳細請看這篇帖子