可以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 # 查看需要安裝那個軟件包
手動執行/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端口
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
