使用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

相关推荐

  • 网络概念趣讲:IP地址、子网掩码、网关、DHCP服务和PPPoE拨号

    下午好,我的网工朋友。 5G技术的更新,推动了新一代的网络通信发展,家庭宽带上网也从最初的十几K的速度,提升到了现在动则上百上千兆的速度。 很多有部署了家庭NAS的用户,甚至都已经更新到了10G级别的内部局域网了。现在6G都要来了。 在这个信息互联的时代,网络的基础知识肯定得掌握,今天就说一下不得不提的五大基础概念: IP地址,子网掩码、网关、DHCP服务和…

    2024年1月17日
    1.1K00
  • 解决无线频繁断网,这个办法值得收藏!

    你们好,我的网工朋友。 在如今互联网普及率非常高的环境下,我们的日常生活和工作都与网络紧密相连。在追求较高网速的同时,稳定的网络传输质量越来越受到关注。 无线网络是现在办公中最常见的弱电网络系统,也是现代生活中最不可缺少的,没有网络,意味着你无法正常开展工作。 而在这个过程中一定会发生很多问题,你可能遇到过很多问题,也解决过不少,但你缺少了汇总这一步,所以就…

    2024年1月15日
    1.1K00
  • 临时的解决防火墙上网不稳定

    某客户的华为防火墙已经工作了十几年,最近有点不正常,每个月总有那么几次断网,接口会自动down,而且每次只能重启了事,但是防火墙重启时间长,次数多了总觉得影响办公。 由于体制原因,申请采购的时间周期会比较长,尤其是在如今这个形势下。 客户问我要个临时的解决方案,于是我就出了个歪招,被客户好好地夸了一番,嘿嘿,本着分享的精神,这事儿也不私藏,说穿了,也很简单。…

    2024年5月20日
    93300
  • 内网穿透—frp

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

    2022年6月8日
    2.1K00
  • Cisco 交换机端口err-disable 解决方法

    我的一台2960GG透过多模 10G SFP-10GBase-LRM光纤接核心3850交换机,今天早上之间网络不通,3850G和2960上的SFP模块指示灯都不亮,查看CISCO 2960G端口有如下提示: 解决如下: 查阅关于link-flap及err-disable的资料如下: Cisco网站上关于link-flap的说明:Link-flap error…

    2024年6月19日
    1.3K00

发表回复

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

在线咨询: QQ交谈

邮件:712342017@qq.com

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

关注微信