Docker 之 构建镜像

简介:

构建镜像的两种方式,无论哪种方式,创建新镜像都需要依赖一个已有的标准镜像文件

1、通过Docker commit 来保存当前容器内容为一个新镜像

$ docker commit container_name  new_image_name

2、通过Dockerfile文件构建新镜像

编辑Dockerfile文件
#FROM必须是第一行,指明要基于哪个镜像进行构建
FROM daocloud.io/centos:7 
#多行标签
LABEL com.example.version="0.0.1"\ com.example.release-date="2017-05-25"
#将同Dockerfile文件目录下的文件拷贝到镜像的指定目录下
COPY shm.jar /usr/local/
COPY jdk1.8 /usr/local/
#设置镜像的环境变量
ENV JAVA_HOME=/usr/local/jdk1.8
ENV PATH=$JAVA_HOME/bin:$PATH
#指定容器被运行时,自动执行的命令,方便服务镜像的使用
CMD /usr/bin/touch /usr/local/shm.log &&\
      java -jar /usr/local/shm.jar &> /usr/local/shm.log &
#曝光运行该镜像容器的端口
EXPOSE 9090

构建镜像

# 注意最后的 .  这个点指定Dockerfile所在的当前目录
docker build -t image_name:tag .

运行镜像
docker run -idt --name container_name -p port:port image_name:tag shell

docker run -idt --name mysql -p 3306:3306 local/mysql:1.0 /bin/bash
目录
相关文章
|
5月前
|
Docker 容器 Perl
云效flow构建docker镜像更换apt源为阿里镜像源
在 Dockerfile 中添加命令以更换 Debian 源为阿里云镜像,加速容器内软件包下载。核心命令通过 `sed` 实现源地址替换,并更新 apt 软件源。其中 `cat` 命令用于验证替换是否成功,实际使用中可删除该行。
1145 32
|
4月前
|
缓存 Shell 网络安全
将应用程序打包成Docker镜像时可能遇到哪些问题?
将应用程序打包成Docker镜像时可能遇到哪些问题?
429 77
|
5月前
|
监控 Java Go
无感改造,完美监控:Docker 多阶段构建 Go 应用无侵入观测
本文将介绍一种基于 Docker 多阶段构建的无侵入 Golang 应用观测方法,通过此方法用户无需对 Golang 应用源代码或者编译指令做任何改造,即可零成本为 Golang 应用注入可观测能力。
307 86
|
6月前
|
存储 JSON 数据格式
docker load 后镜像名称为空的问题解决
Docker在容器化应用程序时提供了强大的镜像管理功能,但也可能在某些操作中遇到如镜像名称为空的问题。通过理解问题的成因并采取适当的解决方案,如正确保存和加载镜像、手动修复标签等,可以有效避免和解决这一问题。通过本文提供的指导,您可以确保在使用Docker进行镜像操作时更为顺利,并提高容器管理的效率。
418 82
|
4月前
|
Shell 应用服务中间件 nginx
docker 镜像的部分常用命令
docker镜像常用命令
161 16
|
4月前
|
关系型数据库 MySQL Docker
|
5月前
|
Ubuntu Linux 网络安全
Ubuntu Docker镜像:支持systemctl、SSH、VNC
总的来说,创建一个支持systemctl、SSH和VNC的Ubuntu Docker镜像需要一些技术知识,但是通过学习和实践,我们可以掌握这些技术。这将使我们能够更有效地使用Docker,更好地管理我们的应用程序和服务。CentOS系统中的日志文件位置和管理
177 17
|
5月前
|
Ubuntu 安全 网络安全
Docker镜像:Ubuntu支持systemctl、SSH和VNC
总的来说,Docker提供了一个灵活且强大的方式来创建和运行自定义的Ubuntu镜像。通过理解和使用Dockerfile,你可以轻松地创建一个支持systemctl、SSH和VNC的Ubuntu镜像。
343 21