docker学习(四)使用commit制作镜像

news/2024/11/2 17:32:26/

制作Docker镜像,一般有两种方式:一种是commit方式,利用已有的镜像,运行后安装定制自己需要的环境,然后生成镜像;另一种就是build方式,通过编写Dockerfile命令脚本进行生成镜像。
本文介绍使用commit制作镜像,并配置容器内程序自动启动。

1.从远程仓库拉取一个纯净的 centos 系统镜像

sudo docker pull centos:7

2.创建并进入容器

#创建容器
sudo docker run -itd --rm --name centos7-container --privileged=true --user=root -p 805:80 -p 5545:554 centos:7  /bin/bash
#查看所有的容器
sudo docker ps -a
#进入容器
sudo docker exec -it centos7-container /bin/bash

3.操作容器

在容器中安装环境 ,修改配置文件等(根据自己需求操作,以下仅供参考)。

sudo docker cp build.tar.gz centos7-container:/opt

容器内应用服务自启动设置(如果不想要自动启动,以下操作可以略过)
在容器的根目录下创建start.sh脚本:

#!/bin/sh
/opt/build/bin/MediaServer -c /opt/build/config/config.ini -d 	#启动服务(换成自己的命令)
/bin/bash                										#保留一个终端,防止容器自动退出

修改start.sh权限:

chmod 777 /start.sh

4.安装好环境之后,退出容器

用 exit 退出容器

5.将容器制作成镜像

sudo docker commit -m 'centos:7 zlmediakit' -a 'creater' centos7-container centos7-zlm-image

6.将制作好的镜像打成 tar 包

sudo docker save -o centos7-zlm-image.tar centos7-zlm-image

7.加载tar包

换一台机器,加载tar包。或者在本机上删除centos7-zlm-image。
加载tar包

sudo docker load -i centos7-zlm-image.tar 

需要先stop容器centos7-container,stop之后容器自动删除,然后删除静像centos7-zlm-image。

#关闭现有容器(占用同名端口)
sudo docker stop ca17e6773fc1
sudo docker stop centos7-container
sudo docker rmi centos7-zlm-image

8.使用镜像创建新容器

#查看现有容器
sudo docker ps -a
#创建新容器(如果不需要自动启动,可将/start.sh换成/bin/bash)
sudo docker run -itd --rm --name centos7-zlm-image-container --privileged=true --user=root -p 805:80 -p 5545:554 centos7-zlm-image /start.sh
#进入新容器
sudo docker exec -it centos7-zlm-image-container /bin/bash
#停止容器(自动删除)
sudo docker stop centos7-zlm-image-container
#删除静像
sudo docker rmi centos7-zlm-image

bingo!
参考:
https://blog.csdn.net/lzyzuixin/article/details/119647438
https://blog.csdn.net/wang_magento/article/details/100763622


http://www.ppmy.cn/news/630016.html

相关文章

双拼和五笔输入法键盘位浮动贴图,适合初学者使用

由于刚学双拼经常忘记键位,然后需要跑查找,这一过程特别让人恼火。网上找不到相关工具,遂做出键位贴图自用。不过做都做了,就把搜狗支持的输入方案做全,发网上,以方便后来者避免重复造轮子浪费时间。 具体…

Mac下的五笔输入法(完美)

2019独角兽企业重金招聘Python工程师标准>>> 我在Windows上使用的是极点五笔, 在linux上使用的fcitx五笔, Mac上呢? 一番尝试,最后找到了清歌输入法。 他保留了我在其它操作系统使用五笔的习惯并且拥有我所想要的所有功能。 这里是作者用Obje…

archlinux fcitx5-rime五笔输入法

Rime(中州韵输入法引擎)是一款支持多种输入方案的输入法引擎。 Rime 本身没有用于处理用户输入的前端,需要配合输入法框架才能使用,比如 Fcitx5 (简体中文) 或 IBus (简体中文)。 折腾过程 最先使用的是fcitx5中的五笔拼音安装R…

安装mmdetection2.22(windows下)

安装mmdetection2.22 确定版本安装mmcv1.4安装mmdetection测试方案1方案2 确定版本 安装mmcv1.4 首先.cuda,pytorch得安装好,这里我拷贝pt1.8虚拟环境 安装mmcv1.4 安装mmdetection 参考文章 下载 cd E:\Code\mmdetection\mmdetection-2.22.0 pip install -r…

DAY33:回溯算法(八)N皇后(棋盘问题)

文章目录 51.N皇后思路树形图 重要逻辑:棋盘的表示法result里面”三维数组“的获取补充1:双引号问题补充2:二维string数组下标访问的问题 回溯部分合法性判断函数部分检查[row,i]位置45和135斜线有无皇后的方式 完整版重要逻辑:为…

1属性选择

1.过滤 学习开始之前 2.包装 机器学习算法 可在整个数据集上应用决策树算法 线性模型:支持向量机 根据系数大小来进行属性排序 递归特征消除:也可以重复进行支持向量机,将排位最低的属性移除,直到所有属性被移除。

原生js设置属性值和获取属性值

var testEle document.getElementById("test") testEle.setAttribute("test","aaa"); // 设置 testEle.attributes["test"].nodeValue; // 获得

装备属性相关:时装-时装购买消费时效代码

时装购买消费时效代码: [avatar type select] 7 0 0 1000 0 30 0 0 2000 0 0 0 0 4000 0 [/avatar type select]