首页 > 其他分享 >docker 制作自己的镜像

docker 制作自己的镜像

时间:2023-08-17 16:36:10浏览次数:36  
标签:root sec master tools ubuntu 镜像 docker 制作

1.下载系统镜像(Ubuntu)

2.基于下载的镜像创建容器 (容器名一个为自己名字全拼)

3.容器的启动、 停止及重启操作

4.怎么查看正在运行的容器和所有容器

5.怎么连接及退出容器

6.查看容器或镜像的内部信息

7.操作容器

8.将容器制作成镜像

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

10.将打包好的 tar 包传给别人

11.接收到 tar 包之后,使用 tar 包

12.使用镜像

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

[root@master ~]# docker search ubuntu

docker 制作自己的镜像_ubuntu

[root@master ~]# docker pull ubuntu

docker 制作自己的镜像_docker_02

2.基于下载的镜像创建容器 (容器名一个为自己名字全拼)

[root@master ~]# docker run --name henry-ubuntu -it ubuntu /bin/bash

docker 制作自己的镜像_docker_03

3.容器的启动、 停止及重启操作

docker start henry-ubuntu       启动命令

docker stop henry-ubuntu        停止命令

docker restart henry-ubuntu     重启命令

docker 制作自己的镜像_ubuntu_04

4.怎么查看正在运行的容器和所有容器

[root@master ~]# docker ps

docker 制作自己的镜像_docker_05

5.怎么连接及退出容器;

[root@master ~]# docker exec -it henry-ubuntu /bin/bash

docker 制作自己的镜像_docker_06

root@4b60ff6d62f0:/# exit

exit

[root@master ~]#  

6.查看容器或镜像的内部信息

[root@master ~]# docker inspect henry-ubuntu

docker 制作自己的镜像_python_07

7.操作容器

在容器中安装 环境 ,我这里安装的是 python3

登录https://www.python.org/downloads/source/,找到对应版本(我们以Python 3.10.12为例)

docker 制作自己的镜像_ubuntu_08

root@4b60ff6d62f0:/# mkdir python

root@4b60ff6d62f0:/# chmod 777 python

root@4b60ff6d62f0:/# cd python/

将文件本地包上传到ubuntu系统创建好的python目录下:

说明:docker cp /路径/文件名 容器ID:/上传路径

[root@master sec-tools]# pwd

/root/sec-tools

[root@master sec-tools]# ls

Python-3.10.12.tgz  safeline

[root@master sec-tools]#  docker cp /root/sec-tools/Python-3.10.12.tgz 4b60ff6d62f0:/python

docker 制作自己的镜像_docker_09

[root@master sec-tools]# docker exec -it henry-ubuntu /bin/bash

root@4b60ff6d62f0:/# ls

bin  boot  dev  etc  home  lib  lib32  lib64  libx32  media  mnt  opt  proc  python  root  run  sbin  srv  sys  tmp  usr  var

root@4b60ff6d62f0:/# cd python/

root@4b60ff6d62f0:/python# ls

Python-3.10.12.tgz

root@4b60ff6d62f0:/python#  

docker 制作自己的镜像_ubuntu_10

解压压缩包

root@4b60ff6d62f0:/python#  tar -xvf Python-3.10.12.tgz 

docker 制作自己的镜像_python_11

准备编译环境

root@4b60ff6d62f0:/python# cd Python-3.10.12  

root@4b60ff6d62f0:/python/Python-3.10.12# ./configure --enable-optimizations

docker 制作自己的镜像_ubuntu_12

–enable-optimizations选项通过运行多个测试来优化Python二进制文件。 这会使构建过程变慢

启动Python 构建过程:

make -j 8

为了加快构建时间,请修改-j以使其对应于处理器中的内核数。 您可以通过键入nproc查找编号。

构建过程完成后,输入以下命令安装Python二进制文件:

sudo make altinstall

不要使用标准的make install,因为它将覆盖默认的系统python3二进制文件

python3.8 --version

输出应显示Python版本。

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

root@4b60ff6d62f0:/python/Python-3.10.12# exit

exit

[root@master sec-tools]#  

8.将容器制作成镜像

格式:docker  commit  -m  '镜像描述'  -a  '制作者'  容器名  镜像名

docker  commit  -m  'py3'  -a  'henry'  henry-ubuntu  py3-henry-ubuntu

[root@master sec-tools]# docker  commit  -m  'py3'  -a  'henry'  henry-ubuntu  py3-henry-ubuntu

sha256:7dd29570f99cea85ee73fbb6f670ef1c7725198b4eedcfd68520e56eb72af57f

[root@master sec-tools]#  

docker 制作自己的镜像_docker_13

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

格式:docker  save  -o  tar包的名字  镜像名

[root@master sec-tools]# pwd

/root/sec-tools

[root@master sec-tools]# docker save -o /root/sec-tools/py3-ubuntu.tar py3-henry-ubuntu

docker 制作自己的镜像_docker_14

10.将打包好的 tar 包传给别人

格式:scp  tar包所在路径  用户名@IP地址:要上传的路径

[email protected]'s password:  

[root@master sec-tools]# scp /root/sec-tools/py3-ubuntu.tar [email protected]:/home/kali/sec-tools

[email protected]'s password:  

[root@master sec-tools]#  

docker 制作自己的镜像_docker_15

11.接收到 tar 包之后,使用 tar 包

docker 制作自己的镜像_python_16

 格式:docker  load  <  tar 包所在路径

 docker load < /home/kali/sec-tools/py3-ubuntu.tar  

docker 制作自己的镜像_docker_17

└─# docker images

docker 制作自己的镜像_docker_18

12.使用镜像

a.查看本地镜像

b.创建并运行容器

docker run -dit --name=py3-henry-ubuntu 7dd29570f99c /bin/bash 

docker 制作自己的镜像_ubuntu_19

c.进入容器

docker exec -it py3-henry-ubuntu /bin/bash

docker 制作自己的镜像_ubuntu_20

标签:root,sec,master,tools,ubuntu,镜像,docker,制作
From: https://blog.51cto.com/mvp2008/7123745

相关文章

  • dotnet7下docker镜像构建之XML打包丢失问题
    注意暂时值适用.NETSDK7.0.100以上其他版本,可以参考举例中的配置host项目省流原因dotnetpublish发布命令对于引用项目的xml不会拷贝到发布目录举例host项目依赖api项目,api项目依赖utils包,utils包中的xml文件在host项目swagger需要使用xml文件一般包引用xml文件输出配......
  • Docker容器设置自启动
    容器自启动分为两种情况一为新建容器时配置自启参数dockerrun--restart=always容器id或容器名称二为已存在的容器配置自启dockerupdate--restart=always容器id或容器名称取消容器自启dockerupdate--restart=no容器id或容器名称批量设置容器自启dockerupda......
  • 春秋云镜像-CVE-2022-0788
    准备:攻击机:win10。靶机:春秋云镜像-CVE-2022-0788。写这个的时候在网上想查找下该漏洞的利用方式,没有找到相关的资料,因此记录下自己通过这个靶场的poc与exp。curl'http://eci-2ze4uhij7kcjyftbwltx.cloudeci1.ichunqiu.com/index.php?rest_route=/xs-donate-form/payment-......
  • 定制rpm包制作
    什么是定制rpm包?为什么要定制rpm包?将原本使用源码安装的服务,打包成rpm包;使用源码安装,步骤繁琐复杂浪费时间,把源码包打成rpm包安装时可以节省时间,提高工作效率。做好rpm包,可以将rpm包放入yum仓库中,方便安装。rpm包的俩种制作方式:1.rpmbuild制作:学会SPEC语言2.fpm制作:fpm是......
  • 修复肢体lora制作
    准备fusehand和clearhand数据集训练过拟合模型分层训练1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,用于仅控制肢体增大学习率unet学习率:一般为1e-4,增加为4e-4增大dim和alpha选择128训练步数至少300步差异炼丹法......
  • 如何找到docker容器中的网卡外联的veth pair的另一张网卡
    1、概述在Docker容器中,每个容器都有一个或多个网络接口(网卡),用于连接容器内部与宿主机或其他容器进行通信。这些网络接口中的一些可能是vethpair,也就是虚拟以太网对,它们以成对的方式存在,一侧连接到容器内部,另一侧连接到宿主机的网络命名空间。vethpair的一侧称为......
  • 云原生之使用Docker部署webos私有云盘
    (云原生之使用Docker部署webos私有云盘)一、webos介绍1.webos简介WebOS是一个支持多种存储,云端存储&协同办公新体验:如Windows11体验的私有云盘/企业网盘。完全支持私有化部署,存储安全可控、数百种文件格式在线预览、编辑和播放、轻松分享。高效协作,细粒度权限管控全平台客户端......
  • 常见应用的docker-compose.yml配置
    MYSQLversion:"3"services:db:image:mysql:5.7.35privileged:truerestart:alwaysenvironment:MYSQL_ROOT_PASSWORD:CREC_2021TZ:Asia/Shanghaicommand:--lower_case_table_names=1--max_connecti......
  • Docker数据持久化与数据共享
    上篇文章的最后我们使用Docker部署了一个纯前端项目,但还有一个很重要的问题就是容器中产生的数据(比如log文件),容器一旦被删除,容器内的所有数据也就没有了,为了避免这个问题我们可以将数据存储到容器之外(比如宿主机),这样即使删除容器也不会丢失数据。一旦容器故障,我们可以重新创建一个......
  • Dockerfile快速上手
     Dockerfile就是用来构建docker镜像的文件,就是一段命令脚本步骤:1:创建dockerfile文件 注:如果想直接build需要文件名为dockerfile2:在文件中编写命令   注:Dockerfile中的命令全部是大写,命令是一层一层发布例如:FROMcentosVOLUME["volume01","volume02"]CMDecho"---......