使用Dockerfile创建镜像,创建容器并运行

一般情况下并不推荐使用“docker commit”来构建镜像,而应该使用更灵活、更强大的Dockerfile来构建Docker镜像,这里就来说一下使用Dockerfile创建镜像,创建容器并运行的方法。

1 生成镜像
1.1 准备Dockerfile文件
准备Dockerfile文件内容如下:

FROM ubuntu:18.10

#Ingrediten:
#       jdk-8u162-linux-x64.tar.gz

RUN buildDeps='gcc libc6 make ssh net-tools iputils-ping git curl telnet vim yum' \
        && apt-get update       \
        && apt-get install -y $buildDeps        \
        && mkdir -p /opt/java/

COPY ./jdk-8u162-linux-x64.tar.gz  /opt/java/

RUN cd /opt/java/       \
        && tar -zxvf jdk-8u162-linux-x64.tar.gz

ENV JAVA_HOME=/opt/java/jdk1.8.0_162
ENV PATH=$JAVA_HOME/bin:$PATH
ENV CLASSPATH=.:$JAVA_HOME/bin/dt.jar:$JAVA_HOME/lib/tools.jar

由于创建过程用到了java文件,这里要将注意这里要将java文件和Dockerfile文件放到同一个目录下:

Dockerfile
jdk-8u162-linux-x64.tar.gz

1.2 执行Docker命令创建镜像
可以参考docker build命令详解。

在Dockerfile文件这个目录下执行命令:

docker build -t myubuntu:v1 .

命令介绍:

docker:docker命令。

build:编译。

-t:镜像的名字及tag,通常name:tag或者name格式;可以在一次构建中为一个镜像设置多个tag,参考docker build命令详解。

myubuntu:生成镜像的名称。

v1:生成镜像的版本号。

.:点符号“.”表示的意思是,指定镜像构建过程中的上下文环境的目录,可以参考docker build 命令后 . 号的意思这篇文章。

1.3 查看生成的镜像

docker images

1.4 创建容器并运行
使用镜像“myubuntu:v8”以交互模式启动一个容器,将其命名为“myubuntu_test”,在容器内执行“/bin/bash”,而且绑定容器的 80 端口,并将其映射到本地主机 127.0.0.1 的 8111 端口上:

docker run -it -p 127.0.0.1:8111:80 --name myubuntu_test myubuntu:v8 /bin/bash

当然,也可以以后台模式启动一个容器:

docker run -p 127.0.0.1:8111:80 -d --name myubuntu_test myubuntu:v8

然后在登录到容器中:

docker run -it myubuntu_test /bin/bash

1.5 查看容器
查看运行中的容器:

docker ps

查看所有容器:

docker ps -a

文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/9491

(0)
郭靖的头像郭靖
上一篇 2023年8月9日 下午4:11
下一篇 2023年8月10日 下午5:10

相关推荐

  • 路由策略

    1、网络拓扑图 2、网络目的 需求 1)市场部不能访问财务部 2)市场部可以访问公司总部 3)财务部可以访问公司总部 4)技术部不能对外访问 3、实现的技术1)filter-policy 技术 filter-policy 2000 import acl number 2000 rule 5 deny source 10.1.1.0 0.0.0.255 rul…

    2024年6月20日
    12700
  • 企业如何做好业务监控​?

    大部分企业都会做基础设施监控,觉得做好基础设施监控就可以解决大部分问题。至于业务方面监控,等有人来说了再处理就行。殊不知这种想法会有诸多隐患。 为什么要做业务监控? 通常情况下,大部分企业都会做基础设施监控,觉得做好基础设施监控就可以解决大部分问题。至于业务方面监控,等有人来说了再处理就行。殊不知这种想法会有诸多隐患: 1、运维比业务部门经常晚发现业务有问题…

    2023年12月6日
    27100
  • 内网穿透—frp

    什么是frp内网穿透 frp 是一个开源项目, 采用 C/S 模式,将服务端部署在具有公网 IP 的机器上,客户端部署在内网或防火墙内的机器上,通过访问暴露在服务器上的端口,反向代理到处于内网的服务。 在此基础上,frp 支持 TCP, UDP, HTTP, HTTPS 等多种协议,提供了加密、压缩,身份认证,代理限速,负载均衡等众多能力。 为什么使用frp…

    2022年6月8日
    98100
  • 局域网IP地址冲突、环路的罪魁祸首是什么?

    中午好,我的网工朋友。 这个时代,网络已经贯穿了人们的生活,对企业而言,办公信息化更是离不开网络支持。 为了提高安全管理和信息化水平,很多企业都建立了完善的办公信息系统,但一些企业在网络建设方面还是会有各种问题存在。 比如说,由于缺乏全面规划,或在选择网络产品时考虑不够周全,导致网络建设未能达到预期效果,随后出现了许多应用问题。 这些问题可能包括网络漏洞,导…

    2024年1月9日
    19800
  • iStoreOS,新增备份系统教程

    一、写盘。 本文主要是x86物理机安装教程(因为物理机才能获取到温度等硬件信息),esxi下安装也很简单,跟安装任何openwrt一样,先转成vmdk文件,添加现有硬盘即可。 我们继续物理机安装教程,首先,用balenaEtcher工具将gz安装包写入U盘,必须要这么做。 所以,请务必写入普通的U盘。 二、接入主机。 将U盘插入小主机,同时将内置硬盘也接入小…

    2023年4月4日
    2.1K00

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

在线咨询: QQ交谈

邮件:712342017@qq.com

工作时间:周一至周五,8:30-17:30,节假日休息

关注微信