博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
docker的安装和入门
阅读量:6963 次
发布时间:2019-06-27

本文共 4459 字,大约阅读时间需要 14 分钟。

一、简单的介绍一下docker是什么(本文主要讲的是docker在windows上的应用)

Docker:是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的,可移植的,自给自足的容器。

Docker的核心概念:镜像、仓库、容器

Docker镜像:是一个特殊的文件系统,提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。

Docker 利用容器Container):来运行应用。容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。

仓库(Repository):是集中存放镜像文件的场所

一次docker的操作流程

  • 一般的流程中,clientpull命令从仓库把image拉到docker host,然后通过run命令指挥imagehost上面弄一个container来跑这个image
  • 当然也可以是相反的流程,client 通过build命令在host上面创建一个自己的image,然后通过push命令把image推到仓库。之后这个image可以被别的人或者自己pull

 

2、 DOCKER在windows上的安装

2.检查电脑环境

2-1.检查版本,为了运行docker,你的机器必须是windows7或以上的64bit系统。

 

2-2.另外,你的机器必须支持硬件虚拟化技术(Hardware Virtualization Technology)并且已被启用。对于windows10系统来说,你可以在 任务管理器->性能 中查看到你的电脑是否开启了虚拟化

 

2-3.怎么开启虚拟化,因为电脑型号不一样,所以每台电脑进入BOIS的方式不一样,重启电脑,我的电脑是Lenovo的ThinkPad,所以我按的是F1,进入BOIS页面,找到Security,把Security下面的Virtualization里面的Intel(R) Virtualization Technology的状态改为Enable

然后再重启就好了。

3下载dockerToolbox

3-1.  ,下载新版本

3-2 全部next就可以了

安装完成

 

安转成功之后桌面会多三个图标

 

如果安装完成之后桌面少了一个Oracle VM VirtualBox 的话,找到你的dockertoolbox

安装目录下面的installers下面的virtualbox双击virtualbox.msi进行安装。

 

 

双击Docker Quickstart Terminal图标,启动一个终端第一次运行会比较就,一般会报下载对应的镜像iso到对C:下的docker路径的错误,把dockertoolbox下的boot2docker.iso复制放到你docker运行下载镜像的位置,再重新启动就可以了。

 

启动成功会出现这样的界面

 

 

三、docker使用

1、docker的常用命令

一个docker引擎开启之后是空的,你需要用docker引擎去build或者下载你自己的镜像然后运行,通过暴漏出来的端口号去访问。

下面以我的windows为例

1-1、如果你想要去查看一个镜像的运行效果,你需要先下载一个镜像,直接运行命令docker pull 镜像名

 

他会自动去下

下载成功之后,运行docker images查看已经下好的镜像

 

使用docker run 直接运行镜像

 

-d 是容器在后天运行

-p 是暴漏出来的端口号

第一个是你要暴漏出来通过地址访问的端口号,第二个本地主机端口号

指令指南

    • 容器生命周期管理 — docker [run|start|stop|restart|kill|rm|pause|unpause]
    • 容器操作运维 — docker [ps|inspect|top|attach|events|logs|wait|export|port]
    • 容器rootfs命令 — docker [commit|cp|diff]
    • 镜像仓库 — docker [login|pull|push|search]
    • 本地镜像管理 — docker [images|rmi|tag|build|history|save|import]
    • 其他命令 — docker [info|version]命令太多根据实际使用情况再请自行百度

 

2、使用dockerfile制作镜像

2-1、Docker与微服务-使用Maven插件构建Docker镜像可以参照

2-2、打开我们的项目,在我们项目的src/main下面新建一个docker文件,在docker文件里面新建Dockerfile文本

FROM java:8  #From是from那个镜像,最好现在docker里面pull下来,不然构建的时候会在再下一遍

VOLUME /tmp                           #指定挂载点,该指令使容器中的一个目录具有持久化存储的功能,该目录可被容器本身使用,也可以共享给其他容器

ADD microservice-discovery-eureka-0.0.1-SNAPSHOT.jar app.jar  #复制文件

RUN bash -c 'touch /app.jar'      #run是启动容器后执行的命令

EXPOSE 9000                           #声明暴露的端口

ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]  #entrypoint 和cmd指令的目的一样,都是指定Docker容器启动时执行的命令

Dockerfile文件

 

修改pom.xml
com.spotify
docker-maven-plugin
0.4.12
eacdy/test
${project.basedir}/src/main/docker
/
${project.build.directory}
${project.build.finalName}.jar
docker-hub
https://index.docker.io/v1/

 这样build之后的项目会报找不到2375端口的错误

需要我们去修改dockerhost的端口

输入docker-machine env

 

$Env:DOCKER_TLS_VERIFY = "1"$Env:DOCKER_HOST = "tcp://192.168.99.100:2376"$Env:DOCKER_CERT_PATH="C:\Users\Administrator\.docker\machine\machines\default(每个人的路径都不一样)

 再去修改pom.xml

com.spotify
docker-maven-plugin
0.4.12
eacdy/test
${project.basedir}/src/main/docker
https://192.168.99.100:2376
C:\Users\Administrator\.docker\machine\machines\default
/
${project.build.directory}
${project.build.finalName}.jar
docker-hub
https://index.docker.io/v1/

这样build的项目就不会报错了

 

 

(作者本人亲测有用)

四、总结

    docker从一个概念到了解,感觉功能还是很强大的,把项目打包成一个镜像,放到容器里去跑通过暴露出来的端口就可以访问了,非常方便实用。本文粗劣的介绍了docker的安装和使用,如果有问题可以留言,写的不好也忘指出,下一篇继续介绍docker和微服务相关的知识。

转载于:https://www.cnblogs.com/wusha/p/8556567.html

你可能感兴趣的文章
Core Animation简介
查看>>
hdu 2251 Dungeon Master bfs
查看>>
Material Design系列第五篇——Working with Drawables
查看>>
SQL Server 2012 复制(发布订阅的研究)
查看>>
http和ftp下载的区别
查看>>
通过ngx-lua来统计Nginx上的虚拟主机性能数据
查看>>
POJ 2031 prim
查看>>
解决eclipse project前出现红色感叹号 但没有提示错误出在什么地方build path jar包也没报错...
查看>>
Linux crontab 命令格式与具体样例
查看>>
mysql中不同事务隔离级别下数据的显示效果--转载
查看>>
安卓应用如何赚钱
查看>>
堆和栈的区别(转过无数次的文章)
查看>>
作为一枚第二天上班的小小.net程序员(技术宅的那种)很迷茫哦,第一个随笔
查看>>
Android Studio 添加Assets目录
查看>>
前端的各种各样的面试题大全
查看>>
构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(39)-在线人数统计探讨
查看>>
Linux下批量替换文件内容方法
查看>>
C#程序实现动态调用DLL的研究(转)
查看>>
mongoDB 3.0 安全权限访问控制 -摘自网络
查看>>
VBOX Ubuntu设置与Windows的共享文件夹
查看>>