一、简介

说起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. 【题解】Beads

    题目描述 Zxl有一次决定制造一条项链,她以非常便宜的价格买了一长条鲜艳的珊瑚珠子,她现在也有一个机器,能把这条珠子切成很多块(子串),每块有k(k>0)个珠子,如果这条珠子的长度不是k的倍数, ...

  2. 45-python基础-python3-字符串-常用字符串方法(三)-startswith()-endswith()

    4-字符串方法 startswith()和 endswith() startswith()和 endswith()判断字符串是否以某个字符串开始或结尾,存在返回 True,否则,方法返回 False. ...

  3. [fw]awk求和

    suse11:~ # cat tmp.lst 4096 4 4096 4 4096 2 4096 4 8192 1 8192 4 8192 4 8192 4 8192 4 8192 4 8192 4 ...

  4. 修改默认runlevel

    CentOS直接修改文件  /etc/inittab 就好了 # Default runlevel. The runlevels used are: # - halt (Do NOT set init ...

  5. Codeforces Paths and Trees

    Paths and Trees time limit per test3 seconds memory limit per test256 megabytes Little girl Susie ac ...

  6. 使用aop和BindingResult进行参数验证

    1.在需要校验的参数名上面添加注解 2.在web层接收参数(参数前面使用@Valid进行标记,后面必须紧跟参数bindingResult,存储参数的错误信息) 3.使用aop进行校验信息统一处理 @C ...

  7. web storage 简单的网页留言版

    html <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <ti ...

  8. 1、Fiddler 打断点 bpu

    一.fiddler 设置断点,可修改以下请求 可以修改HTTP请求头信息,如修改cookie,user-agent等 可以修改请求数据,突破表单限制,提交任意数字,如充值最大金额100,可修改为100 ...

  9. k8s-mysql搭建

    安装官方文档https://kubernetes.io/docs/tasks/run-application/run-replicated-stateful-application/ 搭建完成,但是没 ...

  10. Spring 讲解(五)

    Spring 中使用 xml 配置开发和使用注解开发案例 1.Spring 中使用 xml 配置开发案例 接口 public interface UserDao { void add(User use ...