Linux中docker的使用(2)

容器下安裝jdk和tomcat:
經過掛載文件的方法,把宿主機上的文件掛載到容器中,而後解壓到opt目錄下:
tar -zxvf 包名 -C /opt/
/opt目錄下
drwxr-xr-x 8 10 143 255 Dec 13 00:50 jdk1.8.0_121
drwxr-xr-x 9 root root 160 Mar 15 00:48 tomcat8-9080docker


配置環境變量:vi /etc/profile
export JAVA_HOME=/opt/jdk1.8.0_121
export JAVA_BIN=/opt/jdk1.8.0_121/bin
export JRE_HOME=/opt/jdk1.8.0_121/jre
export PATH=$PATH:$JAVA_HOME/bin:JRE_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JAVA_BIN JRE_HOME PATH CLASSPATHcentos


##########docker tomcat###########
CATALINA_BASE=/opt/tomcat8-9080
CATALINA_HOME=/opt/tomcat8-9080
TOMCAT_HOME=/opt/tomcat8-9080
export CATALINA_BASE CATALINA_HOME TOMCAT_HOME
##########docker tomcat############瀏覽器


新增tomcat的啓動文件:vi /opt/tomcat8-9080/bin/startup.sh 
# Export environment variable
source /etc/profile
# Start tomcat
bash /opt/tomcat8-9080/bin/catalina.sh runtomcat

增長啓動文件的執行權限:
chmod u+x ./startup.shbash

而後能夠把當前容器轉化成一個鏡像進行保存,再經過鏡像生成一個容器
docker commit 被轉的容器id 鏡像倉庫/鏡像名(鏡像名以前沒有就建立,以前存在就替換)
而後docker images 查看一下是否生成鏡像成功了。curl

經過鏡像生成一個容器,而且指定容器的端口和執行tomcat
docker run -d -p 18080:9080 --name test01 centos-fx01 /opt/tomcat8-9080/bin/startup.shoop

而後經過瀏覽器訪問便可:
http://宿主機的外網ip:18080url

或者是內網的,能夠經過以下訪問:
http://容器ip:9080
==================================================================================
查看容器的ip地址:
建立一個docker容器,docker系統會自動爲該容器分配一個ip地址,一般是172.17開頭。orm

咱們能夠在主機上用 docker inspect 命令 或者進入容器用ifconfig命令來查看容器的ip地址。ip

方法一:在容器裏面ifconfig
[root@4c9ce5696573 /]# yum install net-tools

[root@4c9ce5696573 /]# ifconfig 
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.3 netmask 255.255.0.0 broadcast 0.0.0.0
inet6 fe80::42:acff:fe11:3 prefixlen 64 scopeid 0x20<link>
ether 02:42:ac:11:00:03 txqueuelen 0 (Ethernet)
RX packets 1673 bytes 10554255 (10.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1417 bytes 97375 (95.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0


方法二:
[root@izuf63bjp8ts8nkl13pxh1z /]# docker inspect --format='{{.NetworkSettings.IPAddress}}' tomcat8-9080
172.17.0.3
[root@izuf63bjp8ts8nkl13pxh1z /]# docker inspect --format='{{.NetworkSettings.IPAddress}}' test01
172.17.0.2

或者是直接docker inspect +容器名或容器id,在詳細信息裏面查看。


方法三:
到宿主機的容器映射文件中查看:
/var/lib/docker/containers/c105873b15a1bf6a22002ceb27d91b35109dc156cad4cc27768f9f5ee61f8270下的hosts文件最下面一行:

172.17.0.2 c105873b15a1

=================================================================================

docker exec -it test01 /bin/bash      能夠進入已經在運行的docker。若是attach進不了的,能夠使用這個方式進入。

 

==================================================================================

用外網地址訪問到docker裏面部署的tomcat

前提條件是:docker裏面已經部署了jdk和tomcat,端口號假設爲9080

而後在宿主機上輸入:

docker run -it -p 48000:9080 --name testtomcat docker.io/tomcat-fx  /bin/bash

命令說明:

-it 指進入交互式模式

-p 指定宿主機端口號 對應 該docker容器的端口號

--name  給建立的容器取名字 ,這裏取名叫testtomcat

docker.io/tomcat-fx  指用哪一個鏡像來建立這個容器,這裏也能夠用鏡像id號代替

/bin/bash   指進入容器後,執行的命令。

 

容器建立成功後,進入容器,啓動tomcat。而後就能夠經過瀏覽器進行訪問了:

http://外網(公網)ip:48000/   或

http://私網ip:48000/   或是

curl  http://容器ip:9080    或是

curl  http://127.0.0.1:48000    或是

curl  localhost:48000

相關文章
相關標籤/搜索