zoukankan      html  css  js  c++  java
  • 制作基于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相关文档
     
     
  • 相关阅读:
    git 命令手册
    leetcode #7 revert integer 问题
    leetcode #1 twoSum问题:简单实用哈希表
    c++模板函数分离编译的问题
    matlab 与c/c++ 混合MEX的编程
    springboot项目打war包
    springboot-jpa多数据源
    springboot使用RestTemplate+httpclient连接池发送http消息
    IDEA如何安装lombok
    Springboot如何启用文件上传功能
  • 原文地址:https://www.cnblogs.com/regit/p/8287468.html
Copyright © 2011-2022 走看看