制作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

[[email protected] /]# yum install passwd openssl openssh-server -y

启动sshd:

# /usr/sbin/sshd -D   //直接/usr/sbin/sshd启动也可以

这时报以下错误:

[[email protected] b5926410fe60 /]# /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

执行以下命令解决:

[[email protected] /]# ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ‘‘

[[email protected] /]# ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ‘‘

[[email protected] /]# ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key -N ‘‘

然后,修改 /etc/ssh/sshd_config 配置信息:

UsePAM yes 改为 UsePAM no

UsePrivilegeSeparation sandbox 改为 UsePrivilegeSeparation no

[[email protected] /]# sed -i "s/#UsePrivilegeSeparation.*/UsePrivilegeSeparation no/g" /etc/ssh/sshd_config

[[email protected] /]# sed -i "s/UsePAM.*/UsePAM no/g" /etc/ssh/sshd_config

修改完后,重新启动sshd

[[email protected] /]# /usr/sbin/sshd

可以查看到22端口已经起来

[[email protected] /]# 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 密码

[[email protected] /]# passwd root

四. 查看容器ip地址(如果宿主机是linux操作系统则跳过这一步)

[[email protected] /]# ip addr ls eth0

84: [email protected]: <BROADCAST,MULTICAST,UP,LOWER_UP> 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保存当前的镜像,退出会恢复初始状态

[[email protected] ~]# docker ps -all

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

597847f19876        centos              "/bin/bash"         17 minutes ago      Up 16 minutes                           suspicious_mccarthy

[[email protected] ~]# docker commit 597847f19876 zhuzhou/centos-1

sha256:8bb2fccf7a1e08a8b3fa30ef6120ae401673180768260336e433a1d00b8c3029

[[email protected] ~]# docker ps -all

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

597847f19876        centos              "/bin/bash"         17 minutes ago      Up 17 minutes                           suspicious_mccarthy

[[email protected] ~]# 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 退出容器,在设置端口映射进入系统

[[email protected] ~]# docker run  -i -t  -p 32:22  centos  /bin/bash

[[email protected] /]# exit

exit

[[email protected] ~]#

[[email protected] ~]#

[[email protected] ~]# docker run  -i -t  -p 32:22  zhuzhou/centos-1  /bin/bash

[[email protected] /]#

[[email protected] /]# /usr/sbin/sshd

WARNING: ‘UsePAM no‘ is not supported in Red Hat Enterprise Linux and may cause several problems.

[[email protected] /]#

4.2文件传输到centos容器中

(1) 可以通过xshell工具直接连上本机ip:32端口,可以通过sftp工具直接传输文件到容器内。

(2)通过cp命令将宿主机传送到容器中

[[email protected] home]# 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

[[email protected] home]# docker cp /home/hadoop

hadoop/                     hadoop-3.0.0-alpha4/        hadoop-3.0.0-alpha4.tar.gz

[[email protected] home]# docker cp /home/hadoop-3.0.0-alpha4.tar.gz   741c0bf053d6:/home/

[[email protected] home]#

4.3在宿主机中配置Java环境和解压tomcat

4.4 保存当前的镜像

[[email protected] home]# 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

[[email protected] home]# docker commit 741c0bf053d6  zhuzhou/centos-tomcat

sha256:70a6934fbd03fb95dda31e8acf240c07ef8a0aed39853a9e582e34e7ee7ddded

[[email protected] home]# 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后台运行

[[email protected] ~]# docker run  -d -p 8080:8080 -p 32:22 zhuzhou/centos-tomcat  /usr/sbin/sshd -D

435a824136e5820c56fa86d78d1131495191a4c01330671cf546a8660b315062

[[email protected] ~]# 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

[[email protected] ~]#

5 保存镜像

[[email protected] ~]# docker save -o /home/docker-centos-tomcat.tar  zhuzhou/centos-tomcat

[[email protected] ~]# cd /home/

[[email protected] home]# ls

docker-centos-tomcat.tar  hadoop  hadoop-3.0.0-alpha4  hadoop-3.0.0-alpha4.tar.gz  jdk-8u101-linux-x64.rpm  joe

[[email protected] home]#

6 导入镜像到另一个系统中

[[email protected] home]# 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

[[email protected] home]# 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文件

[[email protected] docker-build]# cd /home/docker-build/

[[email protected] docker-build]# ls

apache-tomcat-7.0.79  apache-tomcat-7.0.79.tar.gz  jdk1.7.0_80  jdk-7u80-linux-x64.tar.gz

[[email protected] docker-build]# vi Dockerfile

FROM         centos

MAINTAINER    linux

#指定RUN、CMD与ENTRYPOINT命令的工作目录

WORKDIR /home

#安装网络工具和ssh

RUN yum -y install net-tools

#把java与tomcat添加到容器中

ADD  apache-tomcat-7.0.79.tar.gz   /home

ADD  jdk-7u80-linux-x64.tar.gz     /home

#安装jdk和tomcat,实际测试中加下面两个解压语句会报错,docker会自动进行解压

#RUN tar -xzvf apache-tomcat-7.0.79.tar.gz

#RUN tar -xzvf  jdk-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

#容器运行时监听的端口

EXPOSE  8080

2 创建镜像

docker build -t  zhuzhou/centos-tomcat-2  .

注:如果要ADD本地文件,则本地文件必须在 docker build <PATH>,指定的<PATH>目录下。

注:个人建议采用第一种方式,简单直接

时间: 2024-10-08 22:43:33

制作tomcat的docker镜像的相关文章

制作自己的docker镜像

制作自己的Docker镜像主要有如下两种方式: 1.使用docker commit 命令来创建镜像 通过docker run命令启动容器 修改docker镜像内容 docker commit提交修改的镜像 docker run新的镜像 2.使用 Dockerfile 来创建镜像 使用 docker commit 来扩展一个镜像比较简单,但是不方便在一个团队中分享.我们可以使用 docker build 来创建一个新的镜像.为此,首先需要创建一个 Dockerfile,包含一些如何创建镜像的指令.

centos7使用supermin制作centos7的docker镜像包

安装程序 yum install -y supermin* 创建目录 mkdir -p /data/docker_image/centos7 cd /data/docker_image/centos7 准备要安装的软件包并保存在supermin.d目录下 supermin5 -v --prepare bash coreutils iproute tar curl vim rpm -o supermin.d 根据准备的安装包目录制作隔离的环境,并保存在appliance.d目录下 supermin

制作 docker 镜像

基础环境说明 # cat /etc/redhat-release CentOS release 6.8 (Final) 设置 docker 镜像源# # yum install -y yum-priorities && rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm && rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-E

alpine制作jdk、jre镜像、自定义镜像上传阿里云

alpine制作jdk镜像 alpine Linux简介 1.Alpine Linux是一个轻型Linux发行版,它不同于通常的Linux发行版,Alpine采用了musl libc 和 BusyBox以减少系统的体积和运行时的资源消耗. 2.Alpine Linux提供了自己的包管理工具:apk(注意:ubuntu中是apt-get),我们可以通过https://pkgs.alpinelinux.org/packages 查询包信息 3.Alpine Docker镜像继承了Alpine Lin

docker镜像制作---jdk7+tomcat7基础镜像

1. 安装docker rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm yum -y install docker-io? 可使用以下命令,查看 Docker 是否安装成功:docker version 输出了 Docker 的版本号,则说明安装成功了,可通过以下命令启动 Docker 服务: service docker start 一旦 Docker 服务启动完毕,我

Docker快速入门——Docker镜像制作

Docker快速入门--Docker镜像制作 一.Dockerfile脚本 1.Dockerfile脚本简介 Dockerfile是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容就是描述该层应当如何构建.Dockerfile文件示例如下: ## Dockerfile文件格式 # This dockerfile uses the ubuntu image # VERSION 2 - EDITION 1 # Author: docker_us

基于Dockerfile制作tomcat镜像

Docker 概述: ??在前面的例子中,我们从下载镜像,启动容器,在容器中输入命令来运行程序,这些命令都是手工一条条往里输入的,无法重复利用,而且效率很低.所以就需要一种文件或脚本,我们把想执行的操作以命令的方式写入其中,然后让 docker 读取并分析.执行,那么重复构建.更新将变得很方便,所以Dockerfile 就此诞生了 常用参数: FROM 命令.用法, FROM <image>:<tag>. FROM 命令告诉 docker 我们构建的镜像是以哪个(发行版)镜像为基础

(五)Docker镜像管理2之nginx镜像制作

下面我们来制作一个Nginx的镜像,通过编译安装方式来完成. 重新制作一个基础镜像 文件内容 # Version: 0.0.1 # 指定使用哪个基础镜像 FROM centos:6.6 # 说明该镜像的制作者和联系方式 MAINTAINER Rex.chen [email protected] #设置标签,不是必须的只是为了说明里面的版本查看起来方便 LABEL Discrition="更换了epel源,并安装了相应库和组件" #备份系统默认的epel源,并设置新的EPEL源 RUN 

Docker笔记三 Docker镜像制作

Docker笔记三 Docker镜像制作 1.Docker镜像制作方法: docker commit 保存当前container的状态到镜像,生成image. docker build 利用dockerfile自动化生成image. 2.制作方法 docker commit方式 #启动镜像名称为centos的一个容器(container)  [[email protected] ~]#docker run -it centos /bin/bash #在容器内安装httpd服务 [[email p