1、创建一个制作镜像的文件夹
nsscloud@nsscloud:~$ mkdir makeImage
nsscloud@nsscloud:~$ cd makeImages/
nsscloud@nsscloud:~/makeImages$ touch Dockerfile
nsscloud@nsscloud:~/makeImages$ ll
2、上传tomcat以及jdk到此目录下,压缩包都在官网下载,并在目录下解压
tar -zxvf apache-tomcat-7.0.106.tar.gz jdk-8u261-linux-x64.tar.gz
3、制作Dockerfile
FROM hub.c.163.com/netease_comb/centos:7
MAINTAINER NSS/LJJ
# 更新yum源
RUN yum makecache fast && yum -y update glibc
# 安装常用软件
RUN yum install -y openssh-server vim tar wget curl rsync bzip2 iptables tcpdump less telnet net-tools lsof
# 初始化ssh登陆
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ''
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N ''
RUN ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
RUN ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ''
RUN echo "RSAAuthentication yes" >> /etc/ssh/sshd_config
RUN echo "PubkeyAuthentication yes" >> /etc/ssh/sshd_config
# 设置允许root ssh远程登录
RUN echo 'root:123456' |chpasswd
RUN sed -ri 's/^PermitRootLogin\s+.*/PermitRootLogin yes/' /etc/ssh/sshd_config
#修改/etc/ssh/sshd_config
RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
RUN mkdir /var/run/sshd
RUN mkdir -p /root/.ssh
WORKDIR /usr
#在/usr/下创建jdk目录,用来存放jdk文件
RUN mkdir jdk
#在/usr/下创建tomcat目录,用来存放tomcat
RUN mkdir tomcat
#将宿主机的jdk目录下的文件拷至镜像的/usr/jdk目录下
ADD jdk1.8.0_261 /usr/jdk/
#将宿主机的tomcat目录下的文件拷至镜像的/usr/tomcat目录下
ADD apache-tomcat-7.0.106 /usr/tomcat/
#设置环境变量
ENV JAVA_HOME=/usr/jdk
ENV JRE_HOME=$JAVA_HOME/jre
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH=/sbin:$JAVA_HOME/bin:$PATH
# 容器需要开放SSH 22端口
EXPOSE 22
EXPOSE 8080
# SSH终端服务器作为后台运行
ENTRYPOINT /usr/tomcat/bin/startup.sh && /usr/sbin/sshd -D
4、根据dockerfile制作镜像
nsscloud@nsscloud:~/makeImages$ sudo docker build -t dragonstack/tomcat:v5 .
5、运行容器测试
nsscloud@nsscloud:~$ sudo docker run -d -it -p 8082:22 -p 8083:8080 dragonstack/tomcat:v5
nsscloud@nsscloud:~$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
eb0daf7255f9 dragonstack/tomcat:v5 "/bin/sh -c '/usr/to…" 12 minutes ago Up 12 minutes 0.0.0.0:8082->22/tcp, 0.0.0.0:8083->8080/tcp blissful_bell
远程主机连接测试:
xd-slave5@xd-slave5:~$ ssh -p 8082 root@192.168.0.192
root@192.168.0.192's password:
[root@eb0daf7255f9 ~]#