Docker的简介、安装和搭建web程序自己做镜像

本文介绍了如何在CentOS系统上安装Docker,包括检查系统版本、安装Docker、运行hello-world镜像,以及详细步骤来构建和运行一个基于Python Flask的Web应用。此外,还展示了如何利用Dockerfile创建SpringBoot应用的镜像,并进行容器化部署,最后通过端口映射实现对外服务。
摘要由CSDN通过智能技术生成

CentOS Docker 安装

Docker支持以下的CentOS版本:

  • CentOS 7 (64-bit)
  • CentOS 6.5 (64-bit) 或更高的版本

前提条件

目前,CentOS 仅发行版本中的内核支持 Docker。
Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。
Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本

使用 yum 安装(CentOS 7下)

Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
通过 uname -r 命令查看你当前的内核版本

查看Linux内核

是否在3.10版本以上,否则需要重装centOS

[root@localhost ~]# uname -r

在这里插入图片描述

如果进程在休眠,可以使用kill这个进程

安装Docker

yum -y install docker

在这里插入图片描述
在这里插入图片描述

检查安装版本

在这里插入图片描述

启动docker服务
service docker start

在这里插入图片描述
或者

systemctl start docker 

在这里插入图片描述

运行hello-world镜像

运行镜像会先在本地找hello-world镜像,如果没有会从远程找这个镜像,并下载到本地

docker run hello-world

在这里插入图片描述
可以再执行一次,程序找到了hello-world镜像,所以直接运行

docker run hello-world

在这里插入图片描述

查看已有的镜像文件
docker images

在这里插入图片描述

使用 docker 构建一个 web 应用程序

前面我们运行的容器并没有一些什么特别的用处。
接下来让我们尝试使用 docker 构建一个 web 应用程序。
我们将在docker容器中运行一个 Python Flask 应用来运行一个web应用

载入新的镜像文件

远程载入一个镜像

docker pull training/webapp

在这里插入图片描述

再次查看镜像文件

会发现多了一个镜像文件

	docker images

在这里插入图片描述

运行一个 Python Flask 应用来运行一个web应用
docker run -d -P training/webapp python app.py

(-d让容器在后台运行 将容器内部使用的网络端口映射到我们的)
在这里插入图片描述

查看正在运行的容器
docker ps 

在这里插入图片描述

centors浏览器访问

localhost:32768
在这里插入图片描述
在这里插入图片描述
或者windows浏览器输入 ip地址:32768
这边是http://192.168.56.129:32768
在这里插入图片描述

关闭容器

查看container ID

docker ps

在这里插入图片描述
停止容器

docker stop 		——+CONTAINER ID

在这里插入图片描述
查看关闭后的结果

docker ps -a

在这里插入图片描述

镜像和容器的区别?

镜像是实际存在的,一旦程序运行了镜像,就变成了容器

那么,如何自己写镜像?

新建springboot项目,选择web支持

在这里插入图片描述

创建控制器

新建controller类

@RestController
public class DockerController {

    @GetMapping("docker")
    public String dc() {
        return "hello,docker,imkak";
    }
}

将springboot项目打包为:jar

在这里插入图片描述
打包后,观察目录:target
在这里插入图片描述

编写dockerfile文件

新建txt文件,写入以下信息后,删除后缀名

# Docker image for springboot file run
# VERSION 0.0.1
# Author: knowno
# java8镜像
FROM java:8
# 作者
MAINTAINER knowno <knowno@foxmail.com>
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp 
# 将jar包添加到容器中并更名为app.jar——这边的jar文件要换成你自己的jar包
ADD demo-0.0.1-SNAPSHOT.jar app.jar 
# 运行jar包
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

VOLUME 指定了临时文件目录为/tmp。其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp。改步骤是可选的,如果涉及到文件系统的应用就很有必要了。/tmp目录用来持久化到 Docker 数据文件夹,因为 Spring Boot 使用的内嵌 Tomcat 容器默认使用/tmp作为工作目录
项目的 jar 文件作为 “app.jar” 添加到容器的
ENTRYPOINT 执行项目 app.jar。为了缩短 Tomcat 启动时间,添加一个系统属性指向 “/dev/./urandom” 作为 Entropy Source

如果是第一次打包,它会自动下载java 8的镜像作为基础镜像,以后再制作镜像的时候就不会再下载了。

复制【上传】jar文件和dockfile文件到服务器

可以使用Xftp上传,先建一个docker文件夹,复制粘贴
在服务器新建一个docker文件夹,将maven打包好的jar包和Dockerfile文件复制到服务器的docker文件夹下
在这里插入图片描述

制作镜像

先cd到刚刚建的文件夹下

cd /usr/local/docker

在这里插入图片描述

执行下面命令, 看好,最后面有个"."点!

docker build -t springbootdocker .

在这里插入图片描述
查看镜像

docker images

在这里插入图片描述
启动容器

docker run -d -p 8888:8090 springbootdocker

在这里插入图片描述
选——看或者可以在dockerfile文件后添加,

EXPOSE 8090

在这里插入图片描述
这样就可以大P来启动容器了,不过记得重新build才生效

docker run -d -P  springbootdocker

注:
-d参数是让容器后台运行
-p 是做端口映射,此时将服务器中的8080端口映射到容器中的8888(项目中端口配置的是8080)端口
-P 自动映射

打开浏览器访问

http://192.168.56.129:8888/docker
8888是刚刚上面映射出来的地址,docker是我们控制器里面方法的地址
在这里插入图片描述
在centOS中也一样
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千鹤万象

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值