一, 使用 yum 安装 (CentOS 7 下)
Docker 要求 CentOS 系统的内核版本高于 3.10 , 查看本页面的前提条件来验证你的 CentOS 版本是否支持 Docker .
通过 uname -r 命令查看你当前的内核版本
二, 安装 Docker
从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Docker EE.
Docker CE 即社区免费版, Docker EE 即企业版, 强调安全, 但需付费使用.
1, 移除旧的版本
$ sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine
2, 安装一些必要的系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
3, 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4, 更新 yum 缓存
sudo yum makecache fast
5, 安装 Docker-ce
sudo yum -y install docker-ce
6, 启动 Docker 后台服务
sudo systemctl start docker
7, 测试运行 hello-world
[[email protected] /]# docker run hello-world
二, ASP.NET Core2.2 web 程序
dockerfile 是你的应用部署到 docker 上所必须的配置信息, 只是个不带扩展名的纯文本文件而已
设置 Makefile 属性 [始终复制]
Dockerfile 内容为
- FROM microsoft/dotnet:2.2-aspnetcore-runtime #基础镜像为 dotnetcore
- MAINTAINER demo #作者
- LABEL description="this is a test website" #描述
- LABEL version="1.0" #描述
- WORKDIR /App #工作目录
- COPY . . #将当前目录下的文件, 复制到 WORKDIR 目录
- EXPOSE 8888 #容器暴漏 8888 端口, 与上一步设置的端口一致
- ENTRYPOINT ["dotnet","demo.dll"] #运行容器的命令
修改 Program.cs 文件
- namespace demo
- {
- public class Program
- {
- public static void Main(string[] args)
- {
- CreateWebHostBuilder(args).Build().Run();
- }
- public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
- WebHost.CreateDefaultBuilder(args)
- .UseUrls("http://*:8888")
- .UseStartup<Startup>();
- }
- }
发布, 文件系统
默认位置
demo\bin\Release\netcoreapp2.2\publish
三, 构建镜像
1, 切换到发布目录
[[email protected] publish]
2, 修改 Makefile 文件
指定容器对外暴露端口 80. 注意, COPY . 后面有空格, 表示是当前位置, 意思是从当前位置复制文件到 / publish 目录下
3, 根据当前目录下 dockerfile 配置文件, 进行打包
[[email protected] publish]# docker build -t demo .
4, 查看我们打包好的镜像.
[[email protected] publish]# docker images
四, 运行 docker 容器
[[email protected] publish]# docker run -d -p 8888:8888 demo
-p 是进行宿主和容器之间端口的映射,(-p 宿主端口: 容器端口)
-d 命令, 容器就会一直运行, 即使关掉终端窗口
检验 docker 容器是否运行成功
五, 测试
本机要输 CentOS 的 IP
CentOS 内访问 localhost 就可以了
说明
1, 配置 docker 开机启动
systemctl enable docker
2, 确认容器有在运行
[[email protected] /]# docker ps
CONTAINER ID: 容器 ID
NAMES: 自动分配的容器名称
在容器内使用 docker logs 命令, 查看容器内的标准输出
3, 开始 / 停止容器
[[email protected] /]# docker start/stop 容器 id 或者容器名
4, 重启 docker 服务, 遇到此类错误
原因是 docker 服务挂掉了
systemctl restart docker
来源: http://www.bubuko.com/infodetail-3044298.html