一、简介

说起docker,大多数人第一时间想起来的应该有虚拟化、云计算,这三者有什么区别呢?

对比:

  • 我们所熟知的虚拟化有KVM、xen、Hyper-V等,这些虚拟化虚拟出来的服务器会产生一个新的操作系统(包括内核层、用户层等)
  • 云计算跟虚拟化不是一个概念的东西,我们常见的OpenStack云计算技术是基于虚拟化的技术,虚拟出来一个个的虚拟机,然后再管理这些虚拟机
  • docker也算一个轻量级的虚拟化,只不过它不会产生一个新的新的操作系统,二是产生一个容器,这个容器可以随时停止和重新启动,时间也比虚拟机要
  • 快的多,都是毫秒级的;而且使用容器部署我们的业务服务,可以保证开发、测试、生产环境的高度一致,再也不会担心因为环境的问题导致运行服务失败的问题了。

二、docker安装

在这里使用的操作系统是centos7.4的版本,安装的docker版本是18.03.1-ce,首先我们先配置好我们的yum源,创建新文件:/etc/yum.repos.d/docker-ce.repo

[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://mirrors.ustc.edu.cn/docker-ce/linux/centos/7/x86_64/stable
enabled=1
gpgcheck=1
gpgkey=https://mirrors.ustc.edu.cn/docker-ce/linux/centos/gpg [docker-ce-stable-debuginfo]
name=Docker CE Stable - Debuginfo $basearch
baseurl=https://mirrors.ustc.edu.cn/docker-ce/linux/centos/7/x86_64/stable
enabled=0
gpgcheck=1
gpgkey=https://mirrors.ustc.edu.cn/docker-ce/linux/centos/gpg
  1. yum clean all && rm -rf /var/cache/yum             #清除yum缓存
  2. yum makecache                                              #建立新的缓存
  3. yum install -y yum-utils  device-mapper-persistent-data  lvm2    #安装依赖包
  4.       yum -y install docker-ce                                  #安装docker
  5.       systemctl start docker && systemctl enable docker  #安装并设置自启动
  6.       systemctl status  docker                                 #查看docker的运行状态
  7.       现在我们可以使用docker -h/--help来查看docker命令的用法了

三、docker的使用

        在这里我只跟大家介绍我所用到的一些命令的用法,其它的大家可以自行查看,docker  command

        command:

images或者image ls -a: 查看当前有哪些镜像,这里需要说明的是容器是由镜像创建的,那么我们怎么创建镜像呢?别急,一个一个来

pull  镜像名:  这样我们就是从GitHub上面拉取别人创建好的镜像,比如我们拉取Java的一个镜像,就是docker pull  Java,基于这个

Java镜像,我们可以定制自己的镜像

search  镜像名:  就会搜索这个所有公共的镜像

built -t -f Dockerfile文件: 这个命令就是基于一个镜像(比如Java镜像)来创建自己的镜像,Dockerfile文件后面会详细介绍的

run --name 容器名 -d -p 宿主机端口:容器端口  镜像名:   这个是创建一个容器,-d是以后台进程运行,-p暴露你想暴露的端口

container ls -a 或者 ps -a:  查看已经存在的容器,从中可以看到容器运行的状态等信息

rmi  镜像名或者image rm 镜像名:   删除一个镜像

rm 容器名或者container rm 容器名:  删除一个容器,这里需要注意的是,删除一个运行中的容器是删除不掉的,需要先停止它,使用下面的命令停止

stop 容器名:  停止一个运行中的容器

基本的操作就这些,其它的命令还有很多,我就不一一介绍了,后面文章还会涉及到集群,到时候用到那些命令,再详细的介绍

四、Dockerfile

上面我们谈到创建自己的镜像的时候,用到了Dockerfile,我们先来看下我写过的一个Dockerfile文件:

FROM java
ENV APP_HOME=/opt/byit_jar \
BYIT_TYPE=byit-test WORKDIR ${APP_HOME}
ADD ${BYIT_TYPE}-0.0.1-SNAPSHOT.jar ${APP_HOME} ENTRYPOINT java -jar ${APP_HOME}/${BYIT_TYPE}-0.0.1-SNAPSHOT.jar

解释说明:

FROM java    //这行的意思就是引用我们上面pull下来的那个Java镜像

ENV              //定义变量

WOEKDIR    //定义容器工作的目录,就是上面定义的/opt/byit_jar

ADD             //就是把当前目录下的jar包拷贝到工作目录下面去

ENTRYPOINT  //运行工作目录下的jar包,记住,不能以后台进程的方式去运行,不然的话,容器起不来

我们就可以运行docker build -t byit-test .  生成一个byit-test的镜像,我们可以使用这个镜像来生成容器了,执行,

docker run --name byit-test1 -d -p 8080:8080 byit-test    //为了区分,我把容器的名称写成byit-test1了!

五、私有仓库

我们刚刚pull下来的镜像是在共有仓库中存储的,我们如果想把自己创建的镜像放在自己的私有仓库中使用的话,可以自己搭建

  1. 首先我们需要pull下来一个叫做registry的镜像,这里我简单的说下一个镜像是由仓库名和标签组成的,其实标签的话,可以说成版本号
  2. 下载完之后,我们直接运行docker run --name myregistry -d -p 5000:5000 registry 就创建属于自己的私有仓库了
  3. 然后我们如果想把上面的byit-test上传到私有仓库的话,还需要重命名一下,docker tag byit-test localhost:5000/byit-test,标签可以加也可以不加
  4. 下载也是一样的,我们需要指定私有仓库的地址/加名字才可以

docker安装及使用的更多相关文章

  1. 理解Docker(1):Docker 安装和基础用法

    本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...

  2. docker安装

    系统要求:需要一个64位的centos7操作系统和版本3.10或更高版本的Linux内核 开始安装: uname -r   //查看内核版本yum -y update //更新系统更新到最新 #安装d ...

  3. 2. Docker - 安装

    一.Docker介绍 1. Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上, 也可以实现虚拟化. 容器时完全使用沙 ...

  4. Docker 安装部署

    Docker学习笔记 一.Ubuntu Docker 安装 (1).获取最新版本Docker安装包 lyn@lyn:/data/docker$ sudo wget -qO- https://get.d ...

  5. docker 安装

    Docker使用了一种叫AUFS的文件系统,这种文件系统可以让你一层一层地叠加修改你的文件,最底下的文件系统是只读的,如果需要修改文件,AUFS会增加一个可写的层(Layer),这样有很多好处,例如不 ...

  6. Docker安装及基本使用方法

    Docker安装 CentOS6上安装Docker # yum -y install epel-release # yum -y install docker-io CentOS7上安装Docker ...

  7. Mac 下 docker安装

    http://www.th7.cn/system/mac/201405/56653.shtml Mac 下 docker安装 以及 处理错误Cannot connect to the Docker d ...

  8. docker安装caffe

    [最近一直想要学习caffe,但是苦苦纠结于环境安装不上,真的是第一步都迈不出去,还好有docker的存在!下面,对本人如何利用docker安装caffe做以简单叙述,不属于教程,只是记录自己都做了什 ...

  9. Docker安装Gitlab

    一.Ubuntu16.4上Docker安装Gitlab 1.安装docker 参见:https://docs.docker.com/engine/installation/linux/ubuntuli ...

  10. 使用docker安装部署Spark集群来训练CNN(含Python实例)

    使用docker安装部署Spark集群来训练CNN(含Python实例) http://blog.csdn.net/cyh_24/article/details/49683221 实验室有4台神服务器 ...

随机推荐

  1. easyUI学习笔记二

    1.  拖拉大小 <!DOCTYPE html> <html> <head> <title>easyui学习</title> <scr ...

  2. 计算两个日期之间相差的天数(带带负数) 支持格式YYYY-mm-dd和YYYY-mm-dd HH:mm:ss

    /** * 计算两个日期之间相差的天数(带带负数) 支持格式YYYY-mm-dd比较 * @param higDate 减数 * @param lowDate 被减数 * @returns 差值天数 ...

  3. Web设计规范----控件、组件

    什么是控件?什么组件? 组件控件分类可以根据组件控件属性进行分类,也可以根据组件控件的功能进行划分.一般按功能划分,例如表单类就可以划分为:单文本输入,多文本输入.日历时间选择器.下拉选择列表.单选多 ...

  4. 【记录】jquery动态控制div隐藏或者显示

    1.jQuery判断一个元素当前状态是显示还是隐藏 $("#id").is(':visible'); //true为显示,false为隐藏 $("#id").i ...

  5. 中州韵输入法(rime)导入搜狗词库

    rime是一个非常优秀的输入法,linux平台下的反应速度远超搜狗,也没有隐私风险.2012年开始接触它,到后来抛弃了它,因为rime自带的词库真的太弱了,也懒得折腾.最近发现一个词库转换软件叫ime ...

  6. docker 安装 jenkins 笔记

    前提: 已安装好 docker-ce,可运行 docker 命令 命令: sudo docker pull jenkins mkdir -p ~/dockers/jenkins cd ~/docker ...

  7. mongodb增删改查基础语法

    转载:https://blog.csdn.net/u012206617/article/details/91047239 1. use DataBaseName 切换/创建数据库use mydb 2. ...

  8. IDEA使用Maven搭建JavaWeb项目

    1. 新建项目 2. 填写项目坐标信息 3. 手动生效pom.xml 4. 添加maven常用配置 1) 设置项目统一编码 <!-- 设置编码 --> <properties> ...

  9. 【InnoDB】缓冲池

    索引目录 INNODB的体系结构 缓冲池 缓存中页的定位: checkpoint技术 INNODB的关键特性 插入缓冲 change buffer 两次写 以下的资料总结自:官方文档和<MySQ ...

  10. kubernetes session保持、容器root特权模式开启、多端口容器service 2个端口开启等设置

    session保持如何在service内部实现session保持呢?当然是在service的yaml里进行设置啦. 在service的yaml的sepc里加入以下代码: sessionAffinity ...