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

相关推荐

  • Iperf3测速教程

    Iperf3介绍 iperf3 是一个 TCP、UDP 和 SCTP 网络带宽测量工具。是用于主动测量 IP 网络上可达到的最大带宽的工具。它支持调整与时序,协议和缓冲区有关的各种参数。对于每个测试,它都会报告测得的吞吐量 / 比特率,损耗和其他参数。 Iperf3下载地址:https://iperf.fr/ Iperf3常用参数 1. 通用参数:…

    2022年7月26日
    61400
  • TCP的几个状态 (SYN, FIN, ACK, PSH, RST, URG)

    在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG。 其中,对于我们日常的分析有用的就是前面的五个字段。 它们的含义是: SYN表示建立连接, FIN表示关闭连接, ACK表示响应, PSH表示有 DATA数据传输, RST表示连接重置。 其中,ACK是可能与SYN,FIN等同时使用的,比如SYN…

    2022年11月19日
    63700
  • ip address与ifconfig以及网卡配置文件的总结

    为什么在network -scripts 中配置了网卡文件,nmcli connection show里面看都没有生效 可能是因为NetworkManager和network -scripts产生了冲突,导致配置文件未能生效。您可以尝试手动停止NetworkManager服务,并重启网络服务来使配置文件生效: 如果你想要永久停止NetworkManager服…

    2023年3月22日
    45900
  • 端口隔离和VLAN的区别

    对于大型网络,我们常常对于ip的规划比较烦恼,也有很多朋友问到,对于1000个以上的终端设备如何去设置它的ip地址呢? 对于大型网络,它的ip规划我们常常的做法是划分vlan,因为划分vlan有诸多好处,方便管理以及提升了整个网络的安全性。当然除了划分vlan有其它的方法吗?答案是肯定,那就是端口隔离。这两种方法在ip规划中使用的最多,我们本期来详细了解vl…

    2023年12月14日
    16900
  • 将 COS 作为本地磁盘挂载到 Windows 服务器

    下载与安装 本案例实践使用到以下三种软件,您可选择安装适用于自己所使用系统的软件版本: 说明: Github 下载速度可能比较慢甚至打不开,可自行在其他官方渠道进行下载。 配置 Rclone 注意: 以下配置步骤以 rclone-v1.60.1-windows-amd64 版本为例,其他版本的配置过程可能存在一定差异,请注意相应调整。 修改配置文件 以上步骤…

    2023年3月8日
    41700

发表回复

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

在线咨询: QQ交谈

邮件:712342017@qq.com

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

关注微信