Docker安装及简单镜像制作

本文详细介绍了在CentOS7系统上安装Docker的过程,包括更新yum包、安装依赖、设置国内源及Docker安装验证。并通过helloworld实例演示了Docker镜像的下载与运行,最后提供了创建和运行自定义Apache服务器镜像的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文章为《云计算》课程实验总结,使用CentOS7安装Docker并进行简单镜像制作。

注意:Docker要求CentOS系统的内核版本高于 3.10,可使用uname -r查看系统内核。

 

1 Docker安装

(1)更新yum包

yum update  

(2)安装依赖包

yum-util提供yum-config-manager功能,另外两个是devicemapper驱动依赖。

yum install -y yum-utils device-mapper-persistent-data lvm2

(3)设置yum国内源,提升下载速度。

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

(4)安装Docker

①查看Docker仓库所有版本

yum list docker-ce --showduplicates | sort -r

②选择版本安装

yum install -y docker-ce-18.06.3.ce

(5)验证Docker是否安装成功

①启动Docker

systemctl start docker
#systemctl enable docker 加入自启动

docker version

有Client和Service代表安装成功。

 

2 测试实例 hello world

(1)下载hello-world image文件

docker image pull是抓取image文件的命令;library/hello-worldimage文件在仓库里面的位置。

docker image pull library/hello-world

docker images可查看本地docker镜像有哪些。

(2)运行hello-world image文件

docker container run hello-world

 

3 Docker镜像制作

利用镜像运行容器。本实例创建一个简单的apache服务器镜像,并通过镜像运行容器。

(1)创建工作目录

mkdir apache
cd apache

(2)创建并编写dockerfile文件

vi dockerfile并写入以下内容:

#基础镜像
FROM centos
​
#维护该镜像的用户信息
MAINTAINER The Centos Project<cloud-ops@centos.org>
​
#镜像操作指令安装 apache 软件包
#低版本centos需更新yum源,即加上下面这句
#RUN yum -y update
RUN yum -y install httpd
​
#开启 80 端口
EXPOSE 80
​
#复制index.html文件,并把它设置网站首页文件
ADD index.html /var/www/html/index.html
​
#将执行脚本复制到镜像中
ADD run.sh /run.sh
RUN chmod 755 /run.sh
​
#启动容器时执行脚本
CMD ["/run.sh"]

(3)编写执行脚本run.sh

vi run.sh并写入以下内容:

#!/bin/bash
rm -rf /run/httpd/*
exec /usr/sbin/apachectl -D FOREGROUND

(4)创建apache服务首页页面index.html

vi index.html并写入以下内容:

<h1>Hello for Docker</h1>

(5)生成镜像

#docker build [选项] 路径
#-t:指定镜像的标签信息
docker build -t apache:centos . 
#'.'表示当前路径

查看本地镜像docker images

(6)利用镜像运行容器

①实现将本地端口 8080 映射到容器中的 80 端口

 docker run -d -p 8080:80 apache:centos

②windows下使用浏览器访问虚拟机:IP:8080

注:如果发现无法访问虚拟机,应该是防火墙的问题。开放相应端口或关闭防火墙即可。

#方式一:允许8080端口流量
firewall-cmd --permanent --zone=public --add-port=8080/tcp    #防火墙开放8080端口:success代表设置成功
firewall-cmd --reload       #重新加载防火墙配置:success代表成功
firewall-cmd --zone=public --query-port=8080/tcp  #检查80端口配置是否生效:yes代表生效
​
#方式二:关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
### 如何在 Docker 中使用 JDK 17 镜像 为了在 Docker 容器中运行 Java 应用程序,可以基于官方的 OpenJDK 或 Oracle JDK 构建自定义镜像。对于特定版本如 JDK 17 的安装,通常有两种方法:一是利用现有的官方基础镜像;二是自行创建包含所需配置和依赖项的新镜像。 #### 使用官方提供的 JDK 17 基础镜像 最简便的方式是从 Docker Hub 获取预构建好的官方 OpenJDK 或者 Oracle JDK 镜像作为起点: ```bash docker pull openjdk:17-jdk-alpine ``` 此命令会拉取适用于大多数场景的基础镜像,它包含了必要的 JDK 工具链以及 Alpine Linux 发行版中的基本组件[^1]。 #### 自定义构建带有额外设置的 JDK 17 镜像 如果需要更复杂的环境定制化,则可以通过编写 `Dockerfile` 来实现这一点。下面是一个简单的例子展示如何制作一个包含最新稳定版 JDK 17 和一些常用字体支持(用于解决可能存在的中文显示问题)的 Docker 映像: ```Dockerfile FROM alpine:latest # 设置工作目录并下载 JDK WORKDIR /opt/ RUN apk add --no-cache curl && \ mkdir -p /usr/local/java && \ cd /usr/local/java && \ curl -O https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz && \ tar zxvf jdk-17_linux-x64_bin.tar.gz --strip-components=1 && \ rm jdk-17_linux-x64_bin.tar.gz ENV JAVA_HOME=/usr/local/java \ PATH=$PATH:/usr/local/java/bin # 添加字体库以防止日志中的汉字乱码现象 COPY ./fonts/*.ttc /usr/share/fonts/truetype/ CMD ["java", "-version"] ``` 上述脚本首先选择了轻量级的操作系统——Alpine Linux 作为底层操作系统,并通过一系列指令完成了 JDK 的获取与解压操作。接着设置了两个重要的环境变量来指明 Java 运行时的位置。最后一步则是复制预先准备好的 TrueType 字体文件到系统的共享字体路径下,从而确保应用程序能够正确渲染中文字符[^3]。 完成以上步骤之后,就可以按照如下方式编译新的映像并向其中注入任何其他所需的资源或应用代码了: ```bash docker build -t my-custom-jdk17 . ``` 一旦成功建立了这个新映像,便能轻松地启动容器实例来进行测试或其他开发活动: ```bash docker run -dit --name custom_jdk17_container my-custom-jdk17 java -version ``` 这将开启一个新的交互式终端连接至名为 `custom_jdk17_container` 的容器内执行指定命令验证Java版本信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值