我们可以通过公共仓库拉取镜像使用,但是,有些时候公共仓库拉取的镜像并不符合我们的要求。尽管已经从繁琐的部署工作中解放出来,但是实际开发时,我们可能希望镜像包含整个项目的完成环境,在其他机器上拉取打包完成的镜像,直接运行即可。
Dokcer支持自己构建镜像,还支持将自己构建的镜像上传至公共仓库,镜像构建可以通过以下两种方式来实现

docker commit:从容器创建一个新的镜像
docker build:配合dockerfile文件创建镜像
  • 实战
    通过docker commit来实现镜像的构建,目标,通过基础镜像centos:7,在该镜像中安装jdk和tomcat以后将其制作为一个新的镜像mycentos:7
    1、创建容器
#拉取镜像
docker pull centos:7
#创建容器
docker run -di --name centos7 centos:7

2、拷贝资源

#将宿主机的jdk和tomcat拷贝至容器
docker cp -jdk-11.0.6_linux_x64_bin.tar.gz centos7:/root
docker cp apache-tomcat-9.0.37.tar.gz centos7:/root
  • 安装资源
#进入容器
docker exec -it centos /bin/bash
--------------------以下操作在容器内部执行------------
#切换至/root目录
mkdir -p /usr/local/java
mkdir -p /usr/local/tomcat#将 jdk和tomcat解压至容器/usr/local/java 和 /usr/local/tomcat目录中
tar -zxvf jdk-11.06_linux_x64_bin.tar.gz -C /usr/local/java
tar -zxvf apache-tomcat-9.0.37.tar.gz -C /usr/local/tomcat#配置jdk环境变量
vi /etc/profile
#在环境变量中添加以下内容
export JAVA_HOME=/usr/local/java/jdk-11.0.6/
export PATH=$PATH:$JAVA_HOME/bin
#重新加载环境变量文件
source /etc/profile
  • 构建镜像
docker commit -a="mrhelloword" -m="jdk and tomcat9" centos mycentos:7
-a:提交的作者
-c:使用Dockerfile命令来创建镜像
-m:提交的说明文字
-p:在commit时,将容器暂停

docker创建容器相关推荐

  1. docker 创建容器时指定容器ip

    docker 创建容器时指定容器ip Docker创建容器时默认采用bridge网络,自行分配ip,不允许自己指定. 在实际部署中,我们需要指定容器ip,不允许其自行分配ip,尤其是搭建集群时,固定i ...

  2. Docker创建容器时指定IP

    Docker创建容器时指定IP --net extnetwork --ip 172.10.0.2

  3. linux docker创建容器教程

                                                                            linux docker创建容器教程 目录 0.dock ...

  4. 【docker创建容器的坑】WSL启动nvidia-docker镜像:报错libnvidia-ml.so.1- file exists- unknown

    可能得错误一: 今天使用docker创建容器的时候总是出错,最后锁定问题在"--gpus all"这里: 不加--gpu all可以运行,加入了--gpus all就出错: doc ...

  5. docker创建容器共享目录

    多个容器可以共享docker宿主机本地的某个目录,会大大提高使用效率.docker提供了一个-v参数,可以很好的解决这个问题. 如下,我们创建两台容器: [root@localhost ~]# doc ...

  6. 3.docker创建容器 (docker容器命令)

    文章目录 1.[nginx 容器拉取](https://blog.csdn.net/weixin_43627706/article/details/121990040) 2.运行创建一个nginx容器 ...

  7. Docker创建容器找不到网卡:Error response from daemon: network xxxx not found

    1.现象 找不到es-net网卡 2.解决方式 (1)创建新的自定义网络类型 docker network create es-net(网卡名) (2)断开容器与之前的自定义网络连接 docker n ...

  8. docker创建容器一直restart解决

    原因: 容器同时只能管理一个进程,如果这个进程结束了容器就退出了,但是不表示容器只能运行一个进程(其他进程可在后台运行),但是要使容器不退出必须要有一个进程在前台执行. 解决方案: 启动脚本最后一个进 ...

  9. docker 创建容器报: Error response from daemon: C: drive is not shared.

    报错 C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: C: drive is ...

最新文章

  1. ubuntu中wifi显示被硬件禁用的解决方法
  2. 功能测试话题分享-0323
  3. Java中获取Date的昨天代码实现
  4. 头部外伤指什么_什么是颅骨缺损?
  5. SWT实现Text输入自动提示
  6. Linux编译代码卡死,Linux下970Pro编译卡死的问题
  7. 漫画解读软件开发模式
  8. PDF转CAD怎么转换?(所有格式格式转换方法通用)
  9. 卡巴斯基注册码的操作
  10. adxl345取出值怎么算角度_ADXL345测量倾斜角度数据跳动
  11. 北京邮电大学计算机考研资料汇总
  12. 云服务器ECS是什么
  13. 上古卷轴5捏脸php导入,上古卷轴5捏脸预设导入 上古卷轴5捏脸预设怎么导入
  14. HQPlayer常见问题及解决方案
  15. 数仓分层(ODS、DWD、DWS、DWT、ADS)和数仓建模
  16. 股票短线详解,股票短线的方法技巧?
  17. C语言编写一个简易的网络词典
  18. 洛谷 P2782 友好城市
  19. 使用变量时,单引号、双引号、反向单引号的区别
  20. react-umeditor react富文本

热门文章

  1. Linux 用户和用户组详解
  2. c语言输出漏斗图形7层,ECharts 教程 漏斗图属性与实例介绍 - 闪电教程JSRUN
  3. dubbo的底层原理
  4. python dis模块解析
  5. 监控系统与视频会议系统两者的区分
  6. jQuery-入口函数
  7. 1238: 盗梦空间X
  8. Python编程基础之Python语言的基础知识(上)
  9. 二、Linux镜像软件的安装
  10. ORA-02396:超出最大空闲时间,请重新连接