zoukankan      html  css  js  c++  java
  • docker镜像打包

    以 .NET CORE 3.0重新打包加入gdiplus为例

    镜像打包

    1 查找镜像

    1 从dockerhub拉取指定镜像

    docker pull [images]:[version]

    此处,我用dockerfile拉取的,我的命令

    FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim

    2 查看镜像信息列表

    docker images

    镜像是静态的,得到镜像id,880d85db3775

    2 修改容器

    1 将镜像运行起来
    后台启动docker,并指定宿主机端口和docker映射端口。

    docker run -p 8000:80 -tdi --privileged [imageID] [command]
    -i:以交互模式运行容器,通常与 -t 同时使用;
    -d:后台运行容器,并返回容器ID;
    -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
    --privileged 容器将拥有访问主机所有设备的权限

    通常情况下 [command] 填下 /bin/bash 即可。

    特殊情况下,如需要在centos镜像中使用systemctl,则应添加--privileged 并设置[command ]为 init。

    我的命令

    docker run -p 9699:80 -tdi --privileged 880d85db3775 /bin/bash

    2 查看运行中的所有容器,得到容器id为

    docker ps -a

    3 当镜像通过run 启动后,便会载入到一个动态的container(容器)中运行,此时若需要进入终端交互模式:

    sudo docker exec -it [containerID] /bin/bash

    交互模式中,使用 ctrl+p+q 退出交互 保持运行,使用 exit命令退出并停止容器。

    我的命令,在docker内安装gdiplus,安装后退出交互

    sudo docker exec -it 12b89974bc2b /bin/bash
    apt-get update && apt-get install -y libgdiplus libc6-dev && ln -s /usr/lib/libgdiplus.so /usr/lib/gdiplus.dll

    4 在容器非交互模式下,通过命令来启动/停止已部署的容器服务。

    docker start/stop

    5 删除容器

    docker rm [containerID]

    6 删除镜像

    docker rmi [imageID]

    7 将宿主机内的指定文件传输至容器内部的指定地址

    docker cp [YourHostFilePath] [containerID]:[DockerPath]

    3 制作新镜像

    1 将修改后的容器重新打包成镜像

    docker commit [containerID] [ImageName]:[Version]

    我的命令,打包后并查看

    docker commit 12b89974bc2b wscore3:v1
    docker images

    将容器保存为新的镜像,并添加提交人信息和说明信息。

    docker commit -a "ws" -m "wscore3v1" 12b89974bc2b wscore3:v1

    参数说明
    -a :提交的镜像作者;
    -c :使用Dockerfile指令来创建镜像;
    -m :提交时的说明文字;
    -p :在commit时,将容器暂停。

    3 提交镜像到云仓库

    docker push [ImageID] [repertory_address]

    参考

    Docker常用命令大全
    .NET Core 图片操作在 Linux/Docker 下的坑

  • 相关阅读:
    Java中net.sf.json包关于JSON与对象互转的坑
    Java IO(1)基础知识——字节与字符
    [Github]给已创建的GitHub项目添加LICENSE
    [MAC]激活Sublime Text
    [MAC]安装配置Charles
    [iOS]15个iOS视频播放控件
    [iOS]UIWindow详解
    [Swift]LeetCode1320. 二指输入的的最小距离 | Minimum Distance to Type a Word Using Two Fingers
    [Swift]LeetCode1319. 连通网络的操作次数 | Number of Operations to Make Network Connected
    [Swift]LeetCode1318. 或运算的最小翻转次数 | Minimum Flips to Make a OR b Equal to c
  • 原文地址:https://www.cnblogs.com/xcsn/p/12121421.html
Copyright © 2011-2022 走看看