Docker:Docker打包Web API成镜像并上传到Docker Hub(2)
2017-08-16 16:40
555 查看
Docker官方镜像:https://hub.docker.com/;
本文将把一个webapi制作成docker镜像
官方命令行文档:https://docs.docker.com/engine/reference/commandline/build/#add-entries-to-container-hosts-file-add-host
http://www.runoob.com/docker/docker-run-command.html
使用镜像
1、docker run [镜像名称]
创建一个容器
--name :给容器一个名称
-d:后台运行
-p 外部:内部:标识容器暴漏给外部访问,
-expose 外部:内部 : 是内部容器互相访问使用
-v /var/redmine/files:/redmine/files -v /var/redmine/mysql:/var/lib/mysql sameersbn/redmine:挂载文件;宿主机器:容器目录
-it 交互模式运行容器;如 docker run -it nginx:latest /bin/bash就是在容器中运行nginx并且运行命令 /bin/bash
类似:docker exec -ti 容器名称 /bin/bash ;进入容器终端
--link redis-1:redis-2 容器之间建立链接,常常和-v挂载文件时候一起使用
2、docker search image_name
检索image ,如:docker search microsoft/dotnet
3、docker pull <镜像名:tag>
下载image ,如:docker pull microsoft/dotnet:latest
4、docker images
列出本地镜像列表; -a, --all=false Show all images; --no-trunc=false Don't truncate output; -q, --quiet=false Only show numeric IDs
docker ps
查看所有运行的镜像,-a参数标识包括已经停止的
5、docker rmi image_name或者ID
删除一个或者多个镜像; -f, --force=false Force; --no-prune=false Do not delete untagged parents
docker rm <容器名orID>如:docker rm $(docker ps -a -q)删除所有镜像
docker stop <容器名orID> 停止容器
docker start <容器名orID>开启容器
docker kill <容器名orID>
6、docker save 镜像名 > path/savename.tar
保存镜像
7、docker load < path/savename.tar
加载路径下已经拷贝到本机的镜像
8、docker build -t <镜像名> <Dockerfile路径>
创建镜像,例如:docker build -t mydocker . 最后的Dockerfile路径可以使用 . 代替,标识当前路径
微软提供的的镜像:https://hub.docker.com/u/microsoft/
Dockerfile
docker build -t docker-webapi . (注意:最后的空格 . 表示在当前目录创建镜像)
image的名字必须小写,否则报错
基于微软的dotnet镜像,所以会下载,速度感人;
build成功后,使用命令查看一下,docker images查看一下本地已经有我们创建的镜像了。
运行镜像
docker run docker-webapi
docker login
然后给自己的镜像打tag:
docker tag dockerwebapi:latest baoyun/dockerwebapi:1.0
push到hub:
docker push baoyun/dockerwebapi:1.0
至此通过上面的实践操作,对docker的image、容器、基础命令、Dockerfile等等有了很直观的印象。
https://docs.microsoft.com/en-us/dotnet/core/docker/building-net-docker-images
http://www.cnblogs.com/Leo_wl/p/5782414.html https://docs.docker.com/docker-hub/repos/#searching-for-images
本文将把一个webapi制作成docker镜像
一、Docker命令
打开Docker Quickstart,有以下常用的命令官方命令行文档:https://docs.docker.com/engine/reference/commandline/build/#add-entries-to-container-hosts-file-add-host
http://www.runoob.com/docker/docker-run-command.html
使用镜像
1、docker run [镜像名称]
创建一个容器
--name :给容器一个名称
-d:后台运行
-p 外部:内部:标识容器暴漏给外部访问,
-expose 外部:内部 : 是内部容器互相访问使用
-v /var/redmine/files:/redmine/files -v /var/redmine/mysql:/var/lib/mysql sameersbn/redmine:挂载文件;宿主机器:容器目录
-it 交互模式运行容器;如 docker run -it nginx:latest /bin/bash就是在容器中运行nginx并且运行命令 /bin/bash
类似:docker exec -ti 容器名称 /bin/bash ;进入容器终端
--link redis-1:redis-2 容器之间建立链接,常常和-v挂载文件时候一起使用
2、docker search image_name
检索image ,如:docker search microsoft/dotnet
3、docker pull <镜像名:tag>
下载image ,如:docker pull microsoft/dotnet:latest
4、docker images
列出本地镜像列表; -a, --all=false Show all images; --no-trunc=false Don't truncate output; -q, --quiet=false Only show numeric IDs
docker ps
查看所有运行的镜像,-a参数标识包括已经停止的
5、docker rmi image_name或者ID
删除一个或者多个镜像; -f, --force=false Force; --no-prune=false Do not delete untagged parents
docker rm <容器名orID>如:docker rm $(docker ps -a -q)删除所有镜像
docker stop <容器名orID> 停止容器
docker start <容器名orID>开启容器
docker kill <容器名orID>
6、docker save 镜像名 > path/savename.tar
保存镜像
7、docker load < path/savename.tar
加载路径下已经拷贝到本机的镜像
8、docker build -t <镜像名> <Dockerfile路径>
创建镜像,例如:docker build -t mydocker . 最后的Dockerfile路径可以使用 . 代替,标识当前路径
微软提供的的镜像:https://hub.docker.com/u/microsoft/
二、制作.Net Core Webapi镜像
1、打开VS2015 新建.net core webapi项目# 基于microsoft/dotnet:latest构建Docker Image FROM microsoft/dotnet:latest # 进入docker中的/usr/local/src目录 RUN cd /usr/local/src # 创建DockerWebAPI目录 RUN mkdir DockerWebAPI # 设置工作路径 WORKDIR /usr/local/src/DockerWebAPI # 将当前文件夹下的所有文件全部复制到工作目录 COPY *.* ./ # 向外界暴露5000端口 EXPOSE 5000 # 执行dotnet DockerWebAPI.dll命令 CMD ["dotnet", "DockerWebAPI.dll"]
Dockerfile
3、使用Dockerfile创建镜像
创建镜像有多种方法,适用于不同的情景,这里我们演示用Dockerfile创建一个Webapi的镜像。回到docker终端,输入命令docker build -t docker-webapi . (注意:最后的空格 . 表示在当前目录创建镜像)
image的名字必须小写,否则报错
基于微软的dotnet镜像,所以会下载,速度感人;
build成功后,使用命令查看一下,docker images查看一下本地已经有我们创建的镜像了。
运行镜像
docker run docker-webapi
三、Push到Docker Hub
首先登录hub:docker login
然后给自己的镜像打tag:
docker tag dockerwebapi:latest baoyun/dockerwebapi:1.0
push到hub:
docker push baoyun/dockerwebapi:1.0
至此通过上面的实践操作,对docker的image、容器、基础命令、Dockerfile等等有了很直观的印象。
参考文档:
https://docs.microsoft.com/en-us/dotnet/core/docker/building-net-docker-images
http://www.cnblogs.com/Leo_wl/p/5782414.html https://docs.docker.com/docker-hub/repos/#searching-for-images
相关文章推荐
- qduoj~前端~二次开发~打包docker镜像并上传到阿里云容器镜像仓库
- docker上传镜像到docker hub
- docker 镜像 上传到docker hub
- docker 学习笔记---如何将docker 镜像上传到docker hub仓库
- 上传docker镜像到docker hub
- 基于Dockerfile编译镜像并上传到Docker Hub公共仓库教程
- 将php项目打包docker镜像
- Docker 从Docker Hub 拉取镜像慢怎么办?
- Docker私服搭建及上传自己镜像到私服仓库
- Docker 私有仓库,上传镜像报错:server gave HTTP response to HTTPS client
- 将java项目打包成docker镜像
- 携程Apollo配置中心升级并打包Docker镜像记录
- docker打包informix镜像
- Docker 制作基础镜像----打包操作系统
- spring could Windows打包构建docker镜像到linux
- spring boot应用打包成docker镜像和服务的编排
- docker打包迁移镜像
- 如何将一个docker镜像push到docker hub
- 打包一个Docker镜像,让你的好友加载开启一个容器,并且每隔一秒输出hello,world到指定的文件中