制作基於centos可以ssh連接的容器以及tomcat容器


 

 

 

可以ssh連接的centos容器

參考:http://blog.csdn.net/mexel310/article/details/51705777

一. pull好鏡像后,運行容器

1. docker run -d -it <imageID> /bin/bash

  • -i:表示以“交互模式”運行容器

  • -t:表示容器啟動后會進入其命令行

這樣就能啟動一個一直停留在后台運行的Centos了。如果少了/bin/bash的話,Docker會生成一個Container但是馬上就停止了,不會一直運行,即使有了-d參數。

 

2. 然后我們可以進入我們這個Centos

 docker attach <ContainerID>  

 或者使用

docker exec -it <容器名或者ID> /bin/bash

 

二. 安裝基本網絡組件 

進入Centos后,發現竟然沒有ifconfig和ssh

1. ifconfig的安裝

yum search ifconfig     # 查看需要安裝那個軟件包

yum install net-tools.x86_64    #安裝相關軟件包
 
2. ssh的安裝
yum install openssh-server openssh-clients
 
啟動SSH
/usr/sbin/sshd -D    #這樣啟動會失敗
 
解決方法   

手動執行/usr/sbin/sshd-keygen -A

再執行/usr/sbin/sshd成功。

 
 
 

三. 將端口映射到宿主機



Ctrl+P+Q    #退出,但不停止容器

docker stop <容器ID>    #回到Docker下面,停止容器

docker commit <容器ID> <NAME/VERSION>    #提交當前容器到鏡像

docker run -itd -p 50001:22 <剛才提交的鏡像ID>  /bin/bash    #啟動新容器,並且進行端口映射
 

OK, 現在可以ssh工具訪問宿主機的IP端口就可以訪問到容器了, 用戶名和密碼要用容器里面的。
我這里就是192.168.99.100:50001

 
 

四. 寫成一個dockerfile的形式,如下

FROM centos              
MAINTAINER hong "1816635208@qq.com"       
RUN yum -y install openssh-server;yum clean all
RUN mkdir /var/run/sshd
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
RUN /bin/echo 'root:123456'|chpasswd
RUN /bin/sed -i 's/.*session.*required.*pam_loginuid.so.*/session optional pam_loginuid.so/g' /etc/pam.d/sshd
RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" > /etc/default/locale
EXPOSE 22  #暴漏容器端口22
CMD /usr/sbin/sshd -D

生成鏡像:docker build -t hong/centos:ssh .

創建容器: docker run -d -P --name ssh_test hong /centos : ssh   # -P表示隨機分配宿主機端口號到容器的22端口
 
然后ssh連接就好了,主要用戶名root,密碼是123456
 
 
 
 
 
 

 docker搞一個tomcat

 
 

1. 把上面網頁中的內容編寫成dockerfile文件如下

FROM centos
ADD ./webapps /opt/tomcat/webapps/  #ADD命令只能用於dockfile所在文件夾的文件或目錄
ADD ./apache-tomcat-7.0.81/ /opt/tomcat/   #下載tomcat和jdk到dockerfile所在文件夾
ADD ./jdk1.7.0_80/ /opt/jdk 
ADD ./run.sh /root
RUN chmod +x /root/run.sh
EXPOSE 8080

生成鏡像:docker build -t tomcat_test1 .

 

2.生成容器:

1)命令行生成方式:docker run -d -p 58090:8080 --name my_tomcat tomcat_test1 /root/run.sh

2)docker-compose.yml 自動生成,命令為docker-compose up -d,如果修改了文件內容,重新生成的命令為docker-compose -d --build

tomcat:
    build: .
#image: tomcat_test1 同時使用build和image可以自定義鏡像名 ports:
- "48080:8080" restart: always container_name: tomcat2 command: /root/run.sh

 

其中run.sh的內容如下

#!/bin/bash

export JAVA_HOME=/opt/jdk/
export PATH=$JAVA_HOME/bin:$PATH

sh /opt/tomcat/bin/catalina.sh run

 

如果想wget下載tomcat容器里面的文件,需要把文件放在webapps目錄中的下級目錄中,如下
如果想直接下載文件,可以把文件放在 webapps的ROOT目錄下,比如wget http://192.168.0.242:58080/1.txt
否則需要加上非ROOT目錄的其他目錄名,比如wget http://192.168.0.242:58080/w/2.txt
 
 
 
 
 
dockerfile相關文檔
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM