制作tomcat的docker镜像
制作tomcat的docker镜像一 commit制作tomcat的docker镜像
1 centos下安装docker
yum -y install docker
启动docker
systemctl start docker
设置开机启动
systemctl start docker
2 安装centos镜像
查找centos镜像
docker search centos
拉取centos镜像
docker pull centos
查看cenots镜像
docker images
3 进入centos容器配置ssh
3.1进入centos容器
docker run-i -t centos/bin/bash
3.2安装网络工具
yum -y install net-tools
3.3安装passwd,openssl,openssh-server
# yum install passwd openssl openssh-server -y
启动sshd:
# /usr/sbin/sshd -D //直接/usr/sbin/sshd启动也可以
这时报以下错误:
# /usr/sbin/sshd
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_ecdsa_key
Could not load host key: /etc/ssh/ssh_host_ed25519_key
执行以下命令解决:
# ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''
# ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
# ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key -N ''
然后,修改 /etc/ssh/sshd_config 配置信息:
UsePAM yes 改为 UsePAM no
UsePrivilegeSeparation sandbox 改为 UsePrivilegeSeparation no
# sed -i "s/#UsePrivilegeSeparation.*/UsePrivilegeSeparation no/g" /etc/ssh/sshd_config
# sed -i "s/UsePAM.*/UsePAM no/g" /etc/ssh/sshd_config
修改完后,重新启动sshd
# /usr/sbin/sshd
可以查看到22端口已经起来
# netstat -tulnp|grep 22
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 90/sshd
tcp6 0 0 :::22 :::* LISTEN 90/sshd
3.4修改root 密码
# passwd root
四. 查看容器ip地址(如果宿主机是linux操作系统则跳过这一步)
# ip addr ls eth0
84: eth0@if85:mtu 1500 qdisc noqueue state UP
link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.2/16 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::42:acff:fe11:2/64 scope link
valid_lft forever preferred_lft forever
3.5保存当前的镜像,退出会恢复初始状态
# docker ps -all
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
597847f19876 centos "/bin/bash" 17 minutes ago Up 16 minutes suspicious_mccarthy
# docker commit 597847f19876 zhuzhou/centos-1
sha256:8bb2fccf7a1e08a8b3fa30ef6120ae401673180768260336e433a1d00b8c3029
# docker ps -all
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
597847f19876 centos "/bin/bash" 17 minutes ago Up 17 minutes suspicious_mccarthy
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
zhuzhou/centos-1 latest 8bb2fccf7a1e 10 seconds ago 280.4 MB
docker.io/centos latest 196e0ce0c9fb 7 weeks ago 196.6 MB
4进入容器部署应用
4.1 退出容器,在设置端口映射进入系统
# docker run-i -t-p 32:22centos/bin/bash
# exit
exit
#
#
# docker run-i -t-p 32:22zhuzhou/centos-1/bin/bash
#
# /usr/sbin/sshd
WARNING: 'UsePAM no' is not supported in Red Hat Enterprise Linux and may cause several problems.
#
4.2文件传输到centos容器中
(1) 可以通过xshell工具直接连上本机ip:32端口,可以通过sftp工具直接传输文件到容器内。
(2)通过cp命令将宿主机传送到容器中
# docker ps -all
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
741c0bf053d6 zhuzhou/centos-1 "/bin/bash" 8 minutes ago Up 8 minutes 0.0.0.0:32->22/tcp romantic_bassi
# docker cp /home/hadoop
hadoop/ hadoop-3.0.0-alpha4/ hadoop-3.0.0-alpha4.tar.gz
# docker cp /home/hadoop-3.0.0-alpha4.tar.gz 741c0bf053d6:/home/
#
4.3在宿主机中配置Java环境和解压tomcat
4.4 保存当前的镜像
# docker ps -all
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
741c0bf053d6 zhuzhou/centos-1 "/bin/bash" 17 minutes ago Up 17 minutes 0.0.0.0:32->22/tcp romantic_bassi
# docker commit 741c0bf053d6zhuzhou/centos-tomcat
sha256:70a6934fbd03fb95dda31e8acf240c07ef8a0aed39853a9e582e34e7ee7ddded
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
zhuzhou/centos-tomcat latest 70a6934fbd03 6 seconds ago 1.067 GB
zhuzhou/centos-1 latest 8bb2fccf7a1e 25 minutes ago 280.4 MB
docker.io/centos latest 196e0ce0c9fb 7 weeks ago 196.6 MB
4.5 启动docker后台运行
# docker run-d -p 8080:8080 -p 32:22 zhuzhou/centos-tomcat/usr/sbin/sshd -D
435a824136e5820c56fa86d78d1131495191a4c01330671cf546a8660b315062
# docker ps -all
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
435a824136e5 zhuzhou/centos-tomcat "/usr/sbin/sshd -D" 7 seconds ago Up 6 seconds 0.0.0.0:8080->8080/tcp, 0.0.0.0:32->22/tcp fervent_euclid
#
5 保存镜像
# docker save -o /home/docker-centos-tomcat.tarzhuzhou/centos-tomcat
# cd /home/
# ls
docker-centos-tomcat.tarhadoophadoop-3.0.0-alpha4hadoop-3.0.0-alpha4.tar.gzjdk-8u101-linux-x64.rpmjoe
#
6 导入镜像到另一个系统中
# docker load -i docker-centos-tomcat.tar
cf516324493c: Loading layer 205.2 MB/205.2 MB
d849bfac7f38: Loading layer 84.08 MB/84.08 MB
5c0e5e62d633: Loading layer 789.3 MB/789.3 MB
Loaded image: zhuzhou/centos-tomcat:latest MB
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
zhuzhou/centos-tomcat latest 70a6934fbd03 About an hour ago 1.067 GB
二 Dockerfile文件制作tomcat的docker镜像
1 编写Dockerfile文件
# cd /home/docker-build/
# ls
apache-tomcat-7.0.79apache-tomcat-7.0.79.tar.gzjdk1.7.0_80jdk-7u80-linux-x64.tar.gz
# vi Dockerfile
FROM centos
MAINTAINER linux
#指定RUN、CMD与ENTRYPOINT命令的工作目录
WORKDIR /home
#安装网络工具和ssh
RUN yum -y install net-tools
#把java与tomcat添加到容器中
ADDapache-tomcat-7.0.79.tar.gz /home
ADDjdk-7u80-linux-x64.tar.gz /home
#安装jdk和tomcat,实际测试中加下面两个解压语句会报错, ADD 自带解压功能,docker会自动进行解压
#RUN tar -xzvf apache-tomcat-7.0.79.tar.gz
#RUN tar -xzvfjdk-7u80-linux-x64.tar.gz
#配置环境
ENV JAVA_HOME /home/jdk1.7.0_80
ENV CLASS_PATH $JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin
#设置tomcat 自启动,测试tomcat没有起来
CMD /home/apache-tomcat-7.0.79/bin/startup.sh
#容器运行时监听的端口
EXPOSE8080
2 创建镜像
docker build -tzhuzhou/centos-tomcat-2.
注:如果要ADD本地文件,则本地文件必须在 docker build ,指定的目录下。
注:个人建议采用第一种方式,简单直接
页:
[1]