目录
一、常用操作
1、镜像创建
docker builder -t {IMAGE NAME} .
-t # 镜像名称及标签
. # 表示需创建镜像的路径
2、镜像查询
docker images
3、镜像删除
docker rmi {IMAGE ID}
4、镜像运行
docker run --name {DOCKER NAME} -d -p {serverPort:containPort} {IMAGE TAG}
--name # 运行名称
-d # 后台运行
-p # 端口映射,宿主机端口(映射到外部的端口): docker容器端口(容器内程序运行的端口) 外部访问的是宿主机端口。
5、查询容器进程
docker ps
6、查询容器执行日志
docker logs -f {DOCKER ID}
7、删除容器
docker rm -f {CONTAINER ID}
-f # 强制删除
8、进入容器
docker exec -it {CONTAINER NAME} bash
二、导入和导出
1、save 和 load
## 保存镜像
docker save {IMAGE TAG}/{IMAGE ID} > xx.tar
# 或
docker save > xx.tar {IMAGE TAG}/{IMAGE ID}
# 多个镜像打包成一个文件
docker save -o xxs.tar a:version b:version
## 载入镜像
docker load --input xx.tar
# 或
docker load -i xx.tar
# 或
docker load < xx.tar
2、export 和 import
## 导出镜像
docker export {IMAGE TAG}/{IMAGE ID} > xx.tar
## 导入镜像
docker import {NEW IMAGE NAME} < xx.tar
3、区别
类型 | 文件大小 | 支持重命名 | 支持多个 | 包含镜像历史 | 场景 |
save load | 小 | 不可支持 | 支持 | 包含,可回滚到之前的层 | 部署服务器无法连外网 |
export import | 大 | 支持 | 不支持 | 不包含,仅保存容器当时的快照 | 基础镜像制作 |
三、案例
.net core 对 Service.sln 项目生成的程序创建镜像并测试。
生成的 release 文件都需要上传到 linux 上。
1、检查是否安装依赖
yum search aspnetcore
# 要是提示没有找到相应包,执行以下命令,更新资料库
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
2、安装依赖
如果需要linux开发,需要安装sdk,否则,只需要安装依赖包即可。
# 6.0 是版本号
yum install -y aspnetcore-runtime-6.0
查看是否安装成功!
dotnet --info
3、docker打包镜像
需要先把程序打包好,上传linux上,并创建 Dockerfile 文件,输入以下脚本
FROM mcr.microsoft.com/dotnet/aspnet:6.0
WORKDIR /app
EXPOSE 5001
COPY . /app
ENTRYPOINT ["dotnet","Service.dll"]
执行打包命令
docker build -t myService .
检查打包镜像是否成功
docker images
4、镜像运行
docker run --name myService -d -p 5001:80 myService:latest
检查是否启动成功
docker ps
5、查看程序启动日志
docker logs 71698114a7e1
这里显示的和vs上启动是一致的,也没有明显报错,说明程序启动成功!