Docker简介

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

Docker是用Go语言编写的。Docker也是一个命令行工具,它提供了中央“docker”执行过程中所需的所有工具。

Docker本身需要运行在Linux系统上,因此,如果我们的系统是windows或者MacOS系统,那么我们需要下载一个DockerToolbox,这个安装程序提供了两种使用docker的工具:Kitematic (Alpha)和Docker Quickstart Terminal(前者是图形化docker后者是docker命令行)以及一个实现虚拟化的Oracle VM VirtualBox,它可以在我们第一次打开terminal的时候为我们创建一个Linux虚拟机,名字叫做default。我们也称之为“docker机器”。

image是docker镜像。docker中的重要概念。在docker镜像服务方面,有一个官方网站dockerhub,我们可以在其上找到一些别人已经做好的可执行镜像文件:centos,Ubuntu等。国内如阿里云也提供类似服务,且访问速度较快。基于image我们可以创建(沙箱环境)container,来运行我们的image。

docker常用命令

为docker镜像创建并运行一个container(容器):docker run 镜像名称(一个镜像我们可以创建运行多个容器)

在terminal搜索dockerhub上相关images,如:docker search centos

(dockerhub提供一些官方版本镜像,因此在搜索列表中,我们可以看到OFFICIAL为[OK]代表此镜像是官方提供的版本)

下载dockerhub上的云端镜像:docker pull 镜像名称

(在dockerhub上下载镜像会非常慢,我们可以使用国内如阿里云提供的镜像管理服务)

查看本地镜像:docker images

查询正在运行的容器:docker ps

查询所有容器:docker ps --all   (简写是:docker ps -a)

输出镜像中的目录列表:docker run 镜像名称 ls

创建容器的时候指定名字:docker run --name 名字 镜像名称

查看最近一次创建的容器:docker ps --all --latest

查看容器的日志:docker logs 容器名称

停止运行中的容器:docker stop 容器名称

删除容器:docker rm 容器ID

重启容器:docker restart 容器名称

运行容器:docker start 容器名称

创建一个带交互的容器,比如登录到容器中:docker run --ineteractive --tty centos /bin/bash

(--interactive意思是创建一个交互容器,简写:-i   ;

--tty意思是为容器创建一个终端,简写:-t  ;

终端位置是:/bin/bash)

创建一个后台运行的容器,如实现centos系统镜像容器长时间执行ping操作:

docker run --detach centos ping www.baidu.com     (--detach意思是此容器为后台运行容器,简写:-d)

(docker 会返回一个完整的容器id,我们可以查看正在运行的容器,以及查看容器的log来监察容器运行状态)

docker实用技巧

加速器服务配置

使用阿里云加速器提升国内获取Docker官方镜像的速度

第一步:打开阿里云加速器

登录阿里云账号,并以此查找 控制台-->云计算基础服务-->容器镜像服务-->镜像加速器,并打开对应操作系统的标签:

第二步:创建新的docker machine

在创建升级版docker machine之前需要删除我们之前默认创建的docker机器:

而后,再去创建新的docker机器:

创建一台安装有Docker环境的Linux虚拟机,指定机器名为default,同时配置Docker加速器地址。

docker-machine create --engine-registry-mirror=https://31u25vtb.mirror.aliyuncs.com -d virtualbox default

直接复制上面这行命令,粘贴到terminal中,并回车。(注意:每个阿里云用户都会有一个专属的加速地址,需要自行更换加速地址,即 https://31u25vtb.mirror.aliyuncs.com)

第三步:配置docker machine

查看机器的环境配置,并配置到本地,并通过docker 客户端访问Docker服务。

docker-machine env default
eval "$(docker-machine env default)"
docker info

逐条复制,并在terminal中执行。

综上三步,已经设置好了阿里云加速服务,这次再通过pull命令下载官方镜像,就会快许多。

Dockerfile创建自定义image镜像

我们可以通过Dockerfile文件来将程序jar包制作成docker image文件,上传到阿里云或者在本地运行。

第一步:创建一个用于生成images的文件夹,将Dockerfile文件至于其中

文件夹参考目录结构如下图所示:

其中,start.sh脚本文件如下:

#!/bin/bash
nohup java -jar -Dserver.port=8888 app.jar >./log.out 2>&1 &
tail -f /dev/null

Dockerfile文件如下:

FROM centosMAINTAINER yan.li@ahav.com.cn
ENV APPHOME /apphome
RUN mkdir $APPHOME
WORKDIR $APPHOME
COPY jdk8 $APPHOME/jdk8
ADD app.jar $APPHOME/app.jar
ADD start.sh $APPHOME/
ENV JAVA_HOME=$APPHOME/jdk8/jre
ENV CLASSPATH=.:$JAVA_HOME/lib \PATH=$JAVA_HOME/bin:$PATH
EXPOSE 8888
RUN chmod 777 -R $APPHOME
CMD /bin/bash -c $APPHOME/start.sh

第二步:使用Docker命令行工具生成docker镜像

docker build -t secosecurity:0.1.2 .

注意:最后面有一个点,secosecurity为生成的镜像名称

通过docker images指令可以查看新生成的名叫“secosecurity”的images镜像。

Docker命令行push镜像到阿里云

首先,网页登陆阿里云

在已经创建好的registry中找到push信息:

在docker命令行中依次执行红框内三条语句即可。

Docker必备知识整理相关推荐

  1. PHP工程师必备知识整理

    一.http/https协议,tcp/ip协议,websocket,session,cookie 二.php:oop,thinkphp5,laravel 三.mysql.memcache.redis ...

  2. 教师资格中学教育知识与能力考试必备重点整理

    2017年教师资格中学教育知识与能力考试必备重点整理 考点1:教育的本质属性 教育是有目的地培养人的活动,是教育区别于其它事物现象的根本特征,是教育的质的规定性,也是教育的本质. 考点2:教育学的产生 ...

  3. Docker 学习资源整理

    Docker 是近年来非常火的容器技术,而且啊 Docke r不仅仅是红帽和Canonical等Linux巨头眼里的宠儿,微软等专有软件公司也在热烈拥抱 Docker,所以就知道 Docker 为啥这 ...

  4. 计算机基础知识整理大全_知识大全 | 物理选修35quot;波粒二象性quot;

    图图说: 作为高中课程学习的常备工具书,本丛书以新考试大纲和课程标准为依据,参照新课标各版本教材编写而成,包括新课标各版本教材必修和选修的知识点,并对知识点进行了详细讲解与说明,同时以高考真题诠释对知 ...

  5. Kali Linux渗透基础知识整理(四):维持访问

    Kali Linux渗透基础知识整理系列文章回顾 维持访问 在获得了目标系统的访问权之后,攻击者需要进一步维持这一访问权限.使用木马程序.后门程序和rootkit来达到这一目的.维持访问是一种艺术形式 ...

  6. 深度学习基础知识整理

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/kwame211/article/details/81165381 本文是在七月的BAT机器学习面试1 ...

  7. 传奇客户端文件介绍注解教程,GM必备知识

    传奇客户端文件介绍注解教程,GM必备知识 很多朋友架设微端,或者说修改传奇版本素材方面的内容的时候对于客户端很懵逼! 尤其是新手朋友他并不知道传奇客户端里面哪个文件是对应什么内容的! 今天我们将这些发 ...

  8. 安卓高级面试知识整理

                                                    安卓高级面试知识整理 Android 四大组件:这是一份全面 & 详细的Activity学习指南 ...

  9. 仿站高手是怎么练成的 分析仿站必备知识总结

    仿站高手是怎么练成的 分析仿站必备知识总结 来源:http://hep6.com 作者:和平 现在的网站,真正原创设计的没有几个,都是我抄袭你,你抄袭我,再自己修改下,这可能跟中国的国情有关吧!抄袭网 ...

最新文章

  1. 获取用户电脑的上网IP地址
  2. 迭代法移动盘子java,算法学习--日记(牛顿迭代法)
  3. 透过现象看本质,图解支持向量机
  4. php循环不出数据,在thinkphp模板中循环数组没有循环出所需要的数据
  5. phpcms 添加memcache支持
  6. facebook海量图片存储系统与淘宝TFS系统比较
  7. asp.net学习之SqlDataSource 1 select的四种参数赋予形式的解释
  8. 从 Spring 的环境到 Spring Cloud 的配置
  9. Qt4_实现自定义模型
  10. 如何判断当前循环的栏目是不是最后一个
  11. ubuntu安装linux deepin,Ubuntu 13.04安装Linux Deepin特色软件
  12. You-Get—— 基于 Python3 的媒体下载工具
  13. tomcat修改端口号 / 同时运行多个tomcat
  14. MySQL入门第十天(数据库编程)
  15. eclipse的32位和64位版本(亲测有效)
  16. 近距离看GPU计算(2)
  17. 3GPP TS 23501-g51 中英文对照 | 4.4.4 Location services
  18. scala中下划线的几种含义
  19. 每日一题——LeetCode977(有序数组的平方)二种方法
  20. 前端参数用MD5加密

热门文章

  1. 48张图|手摸手教你性能监控、压测和调优
  2. Ext.Net全部Icon图标名称展示
  3. 【STM32】修改芯片型号后报 Error 的解决方案
  4. Linux安装后初始优化步骤(仅适用于CentOS、RedHat)
  5. mac 启动php70 fpm,mac 启动php-fpm
  6. linux系统启动自动启动,linux系统下的自动启动
  7. 文件打开特别慢_“Origin进不去、下载慢”的解决办法合集
  8. python提示对话框自动关闭_Python实现定时自动关闭的tkinter窗口方法
  9. mysql boolean 和bool_关于 MySQL 的 boolean 和 tinyint(1)
  10. win7系统找不到我的电脑图标的应对办法