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

相关推荐

  • 端口隔离和VLAN的区别

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

    2023年12月14日
    1.5K00
  • ELK构建MySQL慢日志收集平台详解

    ELK介绍 ELK最早是Elasticsearch(以下简称ES)、Logstash、Kibana三款开源软件的简称,三款软件后来被同一公司收购,并加入了Xpark、Beats等组件,改名为Elastic Stack,成为现在最流行的开源日志解决方案,虽然有了新名字但大家依然喜欢叫她ELK,现在所说的ELK就指的是基于这些开源软件构建的日志系统。 我们收集m…

    2023年5月24日
    1.4K00
  • Proxmox VE 网络配置 NAT共享IP 端口映射iptables、brook

    配置桥接网卡,使Proxmox VE(PVE)可以同时创建NAT虚拟机和独立IP虚拟机,同时可以使用脚本映射NAT虚拟机的端口到外网。 1、开启ipv4、ipv6转发 文件最后加入如下配置 2、 配置Proxmox VE网卡文件信息 新增一个vmbr172网桥,并设置流量转发 重启 3、 搭建DHCP服务器 4、 内外网端口映射转发 Pv4是经过内网转发的,…

    2023年8月2日
    7.0K00
  • Cisco防火墙HA实例

    实验环境:2台ASA5508防火墙,组建HA使得一台作为主防火墙Active,另外一台平时作为standby作为备用防火墙。防火墙有3个端口,         gi 1/1 端口为outside出口   gi1/2 端口为inside进口 gi 1/3 端口为两台防火墙互连接口 实验目的:使得两台防火墙互为主备,平时只有一台工作,另一台作为热备在线。等主防火…

    2024年6月19日
    1.4K00
  • 交换机密码忘了,肿么办?

    作为网络工程师,还要记住网络设备的密码。举个栗子,交换机有 BOOT 密码、Console 口密码、Telnet 密码、SSH 密码和 Web 登录密码。假如忘记了交换机的某个密码,该肿么办呢? 1、忘记 Web 登录密码 如果忘记了 Web 登录密码,可以通过 Console 口、Telnet 或 SSH 登录交换机,设置新的 Web 登录密码。比如:We…

    2023年12月14日
    1.6K00

发表回复

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

在线咨询: QQ交谈

邮件:712342017@qq.com

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

关注微信