centos 安装jdk_干货!Centos7安装Docker构件tomcat镜像

7793bfd9e9044c5f2972444e20557b0f.png

题图:pexels

准备工作

查看linux发行版,内核

# cat /etc/redhat-release  #查看版本号

CentOS Linux release 7.8.2003 (Core)
# uname -r  #查看Linux内核

3.10.0-1127.el7.x86_64

1、在线安装docker

yum install docker -y

Docker命令

# systemctl start docker  #启动docker

# systemctl enable docker #开机启动docker

# systemctl status docker #查看docker状态

查看docker 版本

# docker version
Client:
 Version:         1.13.1
 API version:     1.26
 Package version: docker-1.13.1-162.git64e9980.el7.centos.x86_64
 Go version:      go1.10.3
 Git commit:      64e9980/1.13.1
 Built:           Wed Jul  1 14:56:42 2020
 OS/Arch:         linux/amd64

Server:
 Version:         1.13.1
 API version:     1.26 (minimum version 1.12)
 Package version: docker-1.13.1-162.git64e9980.el7.centos.x86_64
 Go version:      go1.10.3
 Git commit:      64e9980/1.13.1
 Built:           Wed Jul  1 14:56:42 2020
 OS/Arch:         linux/amd64
 Experimental:    false

下载centos镜像

# docker search centos
# docker pull centos

由于下载链接是国外的,所以下载有些慢。

# docker images #查看有哪些镜像

启动容器

# docker run -p 8000:80 --name mycentos -d centos
#-p指定服务器8000端口,映射容器80 web端口,容器名为mycentos -d 守护进程模式启动(因为容器必须有进程在运行,否则结束就挂)
# docker ps -a #查看所有运行过的容器

基于Dockerfile进行构件

首先准备好tomcat与jdk解压到与Dockerfile同级的目录下, 构建文件命名必须为Dockerfile, 为什么同级, 因为build的时候会默认把当前的目录缓存进容器中。

Dockerfile文件

FROM                0d120b6ccaa8
MAINTAINER          hackenhu
ENV REFRESHED_AT    2020-10-28
WORKDIR             /usr
RUN                 mkdir jdk tomcat
ADD                 jdk1.8.0_241 /usr/jdk
ADD                 tomcat8.5 /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
EXPOSE              8080
ENTRYPOINT          ["/usr/tomcat/bin/catalina.sh","run"]

Dockerfile文件说明

FROM        本地已存在镜像ID(环境镜像)
MAINTAINER     作者
ENV REFRESHED_AT   设置最后更新的时间
WORKDIR      容器里面切换到 /usr 目录
RUN        在容器中运行的命令(建立tomcat和jdk两个文件夹)
ADD        将宿机中的jdk目录下的所有文件复制到容器中的/usr/jdk下(tomcat目录同理)
ENV        配置容器中环境变量
EXPOSE       指定相关程序端口
ENTRYPOINT     设置启动命令。

构建镜像

# docker build -t centos7-tomcat . 
#注意最后的一个点,是必须要的

如果构建成功,会出现如下信息

信息很长,中间部分省略
……
……
Removing intermediate container e0ae9fc49741
Successfully built 6897bcc9890c

出现该信息,说明镜像构件成功

根据镜像启动容器

# docker run -it -d -p 8081:8080 --name tomcat centos7-tomcat

命令说明:

1. --name,这是指容器启动后显示的名称 
2. 8081是该docker镜像运行的端口,8080是docker里面tomcat运行的端口
3. centos7-tomcat则是上面我构件镜像的名称

访问验证

浏览器访问到tomcat的页面即说明启动成功

http://ip:8081

导出镜像

首先我们使用 docker ps -a 命令查看本机所有的容器。

使用 docker export 命令根据容器ID, 将镜像导出成一个文件。然后把这个镜像分发给其他人使用,比如作为基础软件的运行环境。

docker export f299f501774c > centos7-tomcat.tar

导入镜像

使用 docker import 命令则可将这个镜像文件导入进来。

docker import - newcentos7-tomcat 

执行 docker images 命令可以看到镜像已经导入进来了

newcentos7-tomcat      latest              f299f501774c        About an hour ago   633 MB
centos7-tomcat      latest              6897bcc9890c        About an hour ago   633 MB
docker.io/centos    latest              0d120b6ccaa8        2 months ago        215 MB

2、离线安装Docker

Docker版本18.06下载地址:

wget https://download.docker.com/linux/static/stable/x86_64/docker-18.09.9.tgz

解压

tar -xvf docker-18.09.9.tgz

将解压出来的docker文件内容移动到 /usr/bin/ 目录下

cp docker/* /usr/bin/

将docker注册为service

vim /etc/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
  
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
  
[Install]
WantedBy=multi-user.target

授权启动

# chmod +x /etc/systemd/system/docker.service #添加文件权限并启动docker
# systemctl daemon-reload              #重新加载配置文件
# systemctl start docker               #启动Docker
# systemctl enable docker.service      #设置开机自启

验证

# systemctl status docker    #查看Docker状态
# docker -v                  #查看Docker版本

e153bbf66623f179b33db51f02a1f573.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值