记录一次Docker使用

  • 时间:2019年01月23日
简介 折腾了许久的ASP.NET Core项目,还没尝试过使用Docker,昨天刚好有空,就安装了一个,然后记录一下吧

昨天用了一天,终于把docker装上了然后跑通了项目,??ヽ(°▽°)ノ?

一、安装


CentOS 仅发行版本中的内核支持 Docker。

Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。

Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。


我这里的系统是CentOS7 


 uname -r
3.10.0-514.26.2.el7.x86_64

安装docker命令
#安装Docker
yum install docker
#启动docker服务
systemctl  start docker
#配置开机启动
systemctl  enable docker
安装成功以后并启动后,可以通过以下命令查看docker信息
docker version
Client:
 Version:         1.13.1
 API version:     1.26
 Package version: docker-1.13.1-88.git07f3374.el7.centos.x86_64
 Go version:      go1.9.4
 Git commit:      07f3374/1.13.1
 Built:           Fri Dec  7 16:13:51 2018
 OS/Arch:         linux/amd64

Server:
 Version:         1.13.1
 API version:     1.26 (minimum version 1.12)
 Package version: docker-1.13.1-88.git07f3374.el7.centos.x86_64
 Go version:      go1.9.4
 Git commit:      07f3374/1.13.1
 Built:           Fri Dec  7 16:13:51 2018
 OS/Arch:         linux/amd64
 Experimental:    false

镜像加速器这个就自己看情况吧,我这里没有配置,也挺溜的。

二、发布asp.net core程序

在服务器上创建个目录,比如叫 web
mkdir web
然后把发布的core程序上传过来,然后在这个web目录下创建一个 Dockerfile 文件,没有后缀名
touch Dockerfile

然后打开编辑
vim Dockerfile
写下配置项
FROM microsoft/aspnetcore:2.0
WORKDIR /app 
EXPOSE 80
COPY . .
ENTRYPOINT ["dotnet", "HelloWorldWeb.dll"]

指定core版本为2.0,可以根据自己的版本更换,设置工作目录为app,对外暴露端口为80
保存并退出后,执行如下命令生成镜像
docker build -t helloworld-core-demo .
镜像名称叫 helloworld-core-demo 注意后面还有一个点
直到输出:Successfully built {id}后,表示生成完成了,可以执行命令看一下当前的镜像
docker images
REPOSITORY                       TAG                 IMAGE ID            CREATED             SIZE
helloworld-core-demo             latest              af02a79e9579        21 hours ago        399 MB
docker.io/microsoft/aspnetcore 2.0 db030c19e94b 5 months ago 347 MB

可以执行命令 docker rmi {IMAGE ID} 来删除镜像

三、启动镜像

docker run --name helloworld-core-demo -p 5000:80 -d helloworld-core-demo
成功后会输出一个字符串ID
也可以执行命令
docker ps -a
来查看正在运行的镜像,会列出所有当前正在运行的镜像
CONTAINER ID        IMAGE                           COMMAND                  CREATED             STATUS              PORTS                  NAMES
363a9946f05e        helloworld-core-demo            "dotnet HelloWorld..."   21 hours ago        Up 21 hours         0.0.0.0:5000->80/tcp   helloworld-core-demo

这个时候就可以在浏览器查看部署好的core程序啦。



Top