标签:bin 容器 bash 镜像 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]
参考
标签:bin,容器,bash,镜像,docker,交互,打包 来源: https://www.cnblogs.com/xcsn/p/12121421.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。