centos安装docker
安装依赖包
yum install -y yum-utils \
> device-mapper-persistent-data \
> lvm2 --skip-broken
安装docker
yum install -y docker-ce
启动docker服务
systemctl start docker
查看docker安装版本
docker version
配置镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://u2qcl7og.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
查看已安装镜像
docker images
查看正在运行的容器
docker ps
查看所有的容器
docker ps -a
生成镜像(指定Dockfile为 apidemo-Dockerfile,指定name:tag为 apidemo:latest)
docker build -f apidemo-Dockerfile -t apidemo:latest .
执行images,生成一个container
docker run -p 8192:5000 --name apidemocontainer -e Urls=http://*:5000 abpapidemo:latest
删除所有未被 tag 标记和未被容器使用的镜像
docker image prune
删除所有停止运行的容器:
docker container prune
设置docker启动时启动container
docker update apidemocontainer --restart=always
生成鉴权文件
dotnet dev-certs https
添加信任
dotnet dev-certs https --trust
dotnet dev-certs https -ep /usr/local/share/ca-certificates/aspnet/https.crt --format PEM
查看容器内部
docker exec -it 2a99c4c9c4e0 /bin/bash
-i : 交互式操作
t:终端
/bin/bash 放在镜像名后的是命令,这里希望有个交互式shell,用/bin/bash就好比xshell一样
启动容器container
docker start 2a99c4c9c4e0
发布dotnet程序Dockfile内容:
FROM mcr.microsoft.com/dotnet/aspnet:7.0
WORKDIR /publish
EXPOSE 5000
COPY publish/ /publish
ENV URLS http://*:5000
ENTRYPOINT ["dotnet", "ApiDemo.Web.dll"]
Dockfile内容,添加了鉴权及信任,以便启用https端口(引用的微软image系统是debian)
FROM mcr.microsoft.com/dotnet/sdk:7.0
WORKDIR /publish
EXPOSE 5000
EXPOSE 5001
RUN dotnet dev-certs https --trust
COPY publish/ /publish
ENTRYPOINT ["dotnet", "Report.Web.dll"]
生成image
docker build -t reportweb .
生成container,端口以及卷放在命令参数中
docker run -p 5001:5001 -p 5000:5000 -v /opt/report/publish:/publish --name reportweb reportweb --urls='https://*:5001;http://*:5000'