Return to site

Dockerfile To Install Tomcat On Centos

broken image


  • Install / Initial Config
  • NTP / SSH Server
  • DNS / DHCP Server
  • Storage Server
  • Virtualization
  • Container Platform
  • Cloud Compute
  • Directory Server
  • Web Server
  • Database
  • FTP / Samba / Mail
  • Proxy / Load Balance
  • Monitoring
  • Security
  • Lang / Development
  • Desktop / Others
  • Others #2
    • Bacula - Backup
    • Memcached - Memory Cache
    • RabbitMQ - Message Broker
    • Git - Revision Control
    • Subversion - Revision Control
    • Ansible - Config Manage
    • PXE Boot- PXE Server
    • Pacemaker - HA Cluster
    • OpenVPN - VPN Server
    • WireGuard - VPN Server
    • Rsyslog - Syslog Server
    • LVM - LVM Manage
    • NextCloud - Cloud Storage

一.Docker概述

33 centos /python-35-centos7 Platform for building and running Python 3.5 30 centos /postgresql-96-centos7 PostgreSQL is an advanced Object-Relational 29 kinogmt /centos-ssh CentOS with SSH 22 OK openshift /jenkins-2-centos7 A Centos7 based Jenkins v2.x image for use w. 前回、CentOSコンテナ起動後に、コンテナにログインしてTomcatインストールを行い、そのコンテナからDockerイメージを作成しました。 今回は、それをDockerfileで記述して、TomcatのDockerイメージを作成します。. On December 2020, CentOS Project announced that they shifts focus to CentOS Stream and CentOS Linux 8, as a rebuild of RHEL 8, will end at the end of 2021. So CentOS 8 users must migrate to CentOS Stream 8 or other Operating Systems till the end of 2021. It's possible to get ISO file or RPM packages for CentOS Stream from the link below.

1.Docker简介

Docker是一个开源的应用容器引擎;是一个轻量级容器技术;Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使 用这个镜像;运行中的这个镜像称为容器,容器启动是非常快速的。

对比传统虚拟机总结

2.Docker术语

  • docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);
  • docker客户端(Client):连接docker主机进行操作; docker仓库(Registry):用来保存各种打包好的软件镜像;
  • docker镜像(Images):软件打包好的镜像;放在docker仓库中;
  • docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用。

使用Docker的步骤:

1)、安装Docker

Dockerfile To Install Tomcat On Centos

2)、去Docker仓库找到这个软件对应的镜像;

3)、使用Docker运行这个镜像,这个镜像就会生成一个Docker容器;

4)、对容器的启动停止就是对软件的启动停止;

二.Docker安装

1.安装linux虚拟机

1)、VMWare、VirtualBox(安装); VirtualBox下载地址: https://www.virtualbox.org/wiki/Downloads

2)、安装linux系统CentOS7;

3)、双击启动linux虚拟机;使用 root/ 123456登陆

4)、使用客户端连接linux服务器进行命令操作;

5)、设置虚拟机网络;桥接网络=选好网卡接入网线;

6)、设置好网络以后使用命令重启虚拟机的网络 service network restart ip addr

2.linux上安装docker

1、检查内核版本,必须是3.10及以上 uname ‐r ,如果不是需要 yum update升级软件包及内核

2、安装docker ,输入y确认安装

yum方式安装的docker不是最新版的,通过下面方式安装最新版的docker

3、启动docker 查看docker版本号

4、设置开机启动docker

5、停止docker

6、查看docker帮助

帮助命令如下:

docker --help

三.Docker镜像操作

操作

命令

说明

检索

docker search 关键字

egdockersearchmysql

我们经常去docker hub上检索镜像的详细信息,如镜像的TAG

拉取

docker pull 镜像名:tag

:tag是可选的,tag表示标签,多为软件的版本,默认是latest(最新的)

列表

docker images

查看所有本地镜像

删除

docker rmi image-id

删除指定的本地镜像

1.检索镜像

默认会去 https://hub.docker.com/ 搜索,搜过结果如下

  • NAME:仓库名称
  • DESCRIPTION:镜像描述
  • STARS:用户评价,反应一个镜像的受欢迎程度
  • OFFICIAL:是否官方
  • AUTOMATED:自动构建,表示该镜像由Docker Hub自动构建流程创建的

2.拉取镜像

拉取镜像默认是从docker hub拉取,这是docker默认的公用仓库,不过缺点是国内下载会比较慢。这里设置从ustc拉取镜像(建议使用)。

在宿主机器编辑文件:vi /etc/docker/daemon.json,在该配置文件中加入(没有该文件的话,请先建一个):

最后,需要重启docker服务 systemctl restart docker.service 执行拉取镜像命令

3.列表镜像

  • REPOSITORY:镜像所在的仓库名称
  • TAG:镜像标签
  • lMAGE ID:镜像ID
  • CREATED:镜像的创建日期(不是获取该镜像的日期)
  • SIZE:镜像大小

这些镜像都是存储Docker宿主机的/var/lib/docker目录

4.删除镜像

四.Docker容器操作

操作

命令

说明

运行

docker run --name container-name -d image-name

eg:docker run –name myredis –d redis

--name:自定义容器名

-d:后台运行

image-name:指定镜像模板

列表

docker ps(查看正在运行中的容器);

docker ps -a:查看历史运行过的容器

docker ps -l:查看最近运行过的容器

停止

docker stop container-name/container-id

停止当前你运行的容器

启动

docker start container-name/container-id

启动容器

删除

docker rm container-id

删除指定容器

端口映射

-p 6379:6379

eg:docker run -d -p 6379:6379 --name myredis docker.io/redis

-p: 主机端口(映射到)容器内部的端口

容器日志

docker logs container-name/container-id

更多命令

1.启动容器

1)以交互方式启动容器:docker run -it --name 容器名称 镜像 /bin/bash;

  • -i:表示以'交互模式'运行容器
  • -t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
  • --name :为创建的容器命名。
  • -v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
  • -d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。
  • -p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射

创建一个交互式容器并取名为mycentos

2)以守护进程后台方式启动容器:docker run -d --name 容器名称 镜像

2.停止容器

docker stop 容器名称或者容器ID

3.重启容器

Dockerfile To Install Tomcat On Centos Virtualbox

docker start 容器名称或者容器ID

4.删除容器

删除容器必须是已经停止的容器,删除指定容器:docker rm 容器名称或者容器ID;删除所有容器:docker rm ‘docker ps -a -q'

五.Docker下部署应用程序

1. 构建镜像方案

  • 方案一:直接通过docker pull拉取别人提交好的tomcatnginx等应用程序镜像,然后基于这些镜像去创建容器。
  • 方案:通过dockerfile制作自己的应用程序镜像
  • 方案:根据系统镜像创建Docker容器,这个时候Docker就相当于一个虚拟机,然后进入容器部署对应的应用。具体步骤如下:
  1. 启动Centos系统镜像的容器my_container;
  2. 在该容器中部署应用程序,例如:Tomcat、Nginx等;
  3. 将部署完的my_container提交为新的镜像;
  4. 然后根据新的镜像去创建容器;
  5. 这个镜像可以打包,导入到其他的Docker服务器上

2. 构建MySQL镜像

1、 获取基础镜像CentOS

[root@localhost ~]# docker pull centos

2、 启动容器并且在容器内部安装MySQL

docker run -i -t --name mycentos-mysql centos /bin/bash(通过下面的命令运行centos容器。否则安装后的mysql无法启动。)

[root@localhost ~]# docker run -it --privileged --name=mycentos-mysql centos /usr/sbin/init

另起一个窗口进入容器:[root@localhost ~]# docker exec -it mycentos-mysql /bin/bash

[root@53ee11bff386 /]# yum install -y wget net-tools

[root@53ee11bff386 /]# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

[root@53ee11bff386 /]# rpm -ivh mysql-community-release-el7-5.noarch.rpm

[root@53ee11bff386 /]# yum install mysql-community-server

Centos
Dockerfile to install tomcat on centos virtualbox

3、 启动mysql,并设置密码

[root@53ee11bff386 /]# systemctl start mysqld

[root@53ee11bff386 /]# mysql -uroot -p 回车

Install Tomcat On Ubuntu

mysql> SET PASSWORD = PASSWORD('123456');

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

mysql> FLUSH PRIVILEGES;

mysql> exit;

4、 提交为新镜像

[root@localhost ~]# docker commit mycentos-mysql mysql5.6
[root@localhost ~]# docker images

Install Tomcat On Centos Docker

5、 启动mysql容器

[root@localhost ~]# docker run -d -e 'container=docker' --privileged=true --name mysql5.6 -p 3306:3306 mysql5.6

6、 进入容器启动MySQL服务

[root@localhost ~]# docker exec -it mysql5.6 /bin/bash
[root@6dda80c75bfc /]# systemctl start mysql

7、 Navicat连接

8、 上传镜像到Docker hub

Dockerfile to install tomcat on centos server

2)、去Docker仓库找到这个软件对应的镜像;

3)、使用Docker运行这个镜像,这个镜像就会生成一个Docker容器;

4)、对容器的启动停止就是对软件的启动停止;

二.Docker安装

1.安装linux虚拟机

1)、VMWare、VirtualBox(安装); VirtualBox下载地址: https://www.virtualbox.org/wiki/Downloads

2)、安装linux系统CentOS7;

3)、双击启动linux虚拟机;使用 root/ 123456登陆

4)、使用客户端连接linux服务器进行命令操作;

5)、设置虚拟机网络;桥接网络=选好网卡接入网线;

6)、设置好网络以后使用命令重启虚拟机的网络 service network restart ip addr

2.linux上安装docker

1、检查内核版本,必须是3.10及以上 uname ‐r ,如果不是需要 yum update升级软件包及内核

2、安装docker ,输入y确认安装

yum方式安装的docker不是最新版的,通过下面方式安装最新版的docker

3、启动docker 查看docker版本号

4、设置开机启动docker

5、停止docker

6、查看docker帮助

帮助命令如下:

docker --help

三.Docker镜像操作

操作

命令

说明

检索

docker search 关键字

egdockersearchmysql

我们经常去docker hub上检索镜像的详细信息,如镜像的TAG

拉取

docker pull 镜像名:tag

:tag是可选的,tag表示标签,多为软件的版本,默认是latest(最新的)

列表

docker images

查看所有本地镜像

删除

docker rmi image-id

删除指定的本地镜像

1.检索镜像

默认会去 https://hub.docker.com/ 搜索,搜过结果如下

  • NAME:仓库名称
  • DESCRIPTION:镜像描述
  • STARS:用户评价,反应一个镜像的受欢迎程度
  • OFFICIAL:是否官方
  • AUTOMATED:自动构建,表示该镜像由Docker Hub自动构建流程创建的

2.拉取镜像

拉取镜像默认是从docker hub拉取,这是docker默认的公用仓库,不过缺点是国内下载会比较慢。这里设置从ustc拉取镜像(建议使用)。

在宿主机器编辑文件:vi /etc/docker/daemon.json,在该配置文件中加入(没有该文件的话,请先建一个):

最后,需要重启docker服务 systemctl restart docker.service 执行拉取镜像命令

3.列表镜像

  • REPOSITORY:镜像所在的仓库名称
  • TAG:镜像标签
  • lMAGE ID:镜像ID
  • CREATED:镜像的创建日期(不是获取该镜像的日期)
  • SIZE:镜像大小

这些镜像都是存储Docker宿主机的/var/lib/docker目录

4.删除镜像

四.Docker容器操作

操作

命令

说明

运行

docker run --name container-name -d image-name

eg:docker run –name myredis –d redis

--name:自定义容器名

-d:后台运行

image-name:指定镜像模板

列表

docker ps(查看正在运行中的容器);

docker ps -a:查看历史运行过的容器

docker ps -l:查看最近运行过的容器

停止

docker stop container-name/container-id

停止当前你运行的容器

启动

docker start container-name/container-id

启动容器

删除

docker rm container-id

删除指定容器

端口映射

-p 6379:6379

eg:docker run -d -p 6379:6379 --name myredis docker.io/redis

-p: 主机端口(映射到)容器内部的端口

容器日志

docker logs container-name/container-id

更多命令

1.启动容器

1)以交互方式启动容器:docker run -it --name 容器名称 镜像 /bin/bash;

  • -i:表示以'交互模式'运行容器
  • -t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
  • --name :为创建的容器命名。
  • -v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
  • -d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。
  • -p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射

创建一个交互式容器并取名为mycentos

2)以守护进程后台方式启动容器:docker run -d --name 容器名称 镜像

2.停止容器

docker stop 容器名称或者容器ID

3.重启容器

Dockerfile To Install Tomcat On Centos Virtualbox

docker start 容器名称或者容器ID

4.删除容器

删除容器必须是已经停止的容器,删除指定容器:docker rm 容器名称或者容器ID;删除所有容器:docker rm ‘docker ps -a -q'

五.Docker下部署应用程序

1. 构建镜像方案

  • 方案一:直接通过docker pull拉取别人提交好的tomcatnginx等应用程序镜像,然后基于这些镜像去创建容器。
  • 方案:通过dockerfile制作自己的应用程序镜像
  • 方案:根据系统镜像创建Docker容器,这个时候Docker就相当于一个虚拟机,然后进入容器部署对应的应用。具体步骤如下:
  1. 启动Centos系统镜像的容器my_container;
  2. 在该容器中部署应用程序,例如:Tomcat、Nginx等;
  3. 将部署完的my_container提交为新的镜像;
  4. 然后根据新的镜像去创建容器;
  5. 这个镜像可以打包,导入到其他的Docker服务器上

2. 构建MySQL镜像

1、 获取基础镜像CentOS

[root@localhost ~]# docker pull centos

2、 启动容器并且在容器内部安装MySQL

docker run -i -t --name mycentos-mysql centos /bin/bash(通过下面的命令运行centos容器。否则安装后的mysql无法启动。)

[root@localhost ~]# docker run -it --privileged --name=mycentos-mysql centos /usr/sbin/init

另起一个窗口进入容器:[root@localhost ~]# docker exec -it mycentos-mysql /bin/bash

[root@53ee11bff386 /]# yum install -y wget net-tools

[root@53ee11bff386 /]# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

[root@53ee11bff386 /]# rpm -ivh mysql-community-release-el7-5.noarch.rpm

[root@53ee11bff386 /]# yum install mysql-community-server

3、 启动mysql,并设置密码

[root@53ee11bff386 /]# systemctl start mysqld

[root@53ee11bff386 /]# mysql -uroot -p 回车

Install Tomcat On Ubuntu

mysql> SET PASSWORD = PASSWORD('123456');

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

mysql> FLUSH PRIVILEGES;

mysql> exit;

4、 提交为新镜像

[root@localhost ~]# docker commit mycentos-mysql mysql5.6
[root@localhost ~]# docker images

Install Tomcat On Centos Docker

5、 启动mysql容器

[root@localhost ~]# docker run -d -e 'container=docker' --privileged=true --name mysql5.6 -p 3306:3306 mysql5.6

6、 进入容器启动MySQL服务

[root@localhost ~]# docker exec -it mysql5.6 /bin/bash
[root@6dda80c75bfc /]# systemctl start mysql

7、 Navicat连接

8、 上传镜像到Docker hub

  • 注册Dockerhub账号,Docker Hub注册后创建private/publicRepository
  • 登录docker login [root@localhost ~]# docker login
  • tag修改镜像名称 [root@localhost ~]# docker tag mysql5.6 frank409167848/centos7-mysql5.6
  • 推送docker push [root@localhost ~]# docker push frank409167848/centos7-mysql5.6
  • Docker hub 查看
  • 下载

六.报错问题

1.启动docker报错

查看docker状态

Solutions:根据高亮的错误日志得知,此linux的内核中的SELinux不支持 overlay2 graph driver ,解决方法有两个,要么启动一个新内核,要么就在docker里禁用selinux,--selinux-enabled=false

如上改为--selinux-enabled=false后保存,重启docker,搞定!

2.启动mysql报错

Install Tomcat Windows

[root@dfb1cc594f9b /]# systemctl start mysql
Failed to get D-Bus connection: Operation not permitted

解决办法

生成容器: # docker run -d -e 'container=docker' --privileged=true --name mysql5.6 -p 3306:3306 mysql5.6

进入容器: # docker exec -it mysql /bin/bash

这样可以使用systemctl启动服务了。

Dockerfile To Install Tomcat On Centos Command

posted @ 2018-09-17 00:00Frankdeng 阅读(7109) 评论(1) 编辑收藏




broken image