Docker -- 简单入门

什么是Docker

开源

诞生于2013年初,基于Go语言的开源项目。

容器(沙盒)

基于Liunx的容器技术,Docker进一步优化容器。 让应用运行在容器中,不同的容器互相隔离又可以建立通信机制。 容器自身对自由的要求很低,远低于以往的虚拟机。

核心概念

  1. 镜像(Image)
  2. 容器(Container)
  3. 仓库(Repository)

镜像(Image)

类似虚拟机的镜像,镜像是创建Docker容器的基础,用户可以从仓库下载一个已经做好的应用镜像。 例如一个镜像包含了完整的Ubuntu操作系统,可以叫做Ubuntu镜像。

注意镜像是只读的

容器(Container)

容器类似于一个沙箱,Docker 利用容器来运行和隔离应用。可以理解成一个集装箱。

仓库(Repository)

仓库类似于我们存放代码的仓库,就是Docker几种存放镜像的场所。
官方仓库:Docker store。也可以自己搭建私人仓库,例如Harbor。

Docker 安装

https://docs.docker.com/engine/installation/

Docker 分两大版本 社区版Community Edition(CE)和企业版Enterprise Edition(EE)。

CE版本还分稳定版和每月发型版本。 稳定版每季度发型一版。

关于版本号,以前版本例如v1.12 。现在版本直接以发型月份命名,例如v17.09

常用指令

以下以CentOS 系统为例

启动docker 服务

$ sudo systemctl start docker

关闭docker服务

$ sudo systemctl stop docker

重启docker服务

$ sudo systemctl restart docker

查看docker运行状态

$ sudo systemctl status docker

开机自动启动docker服务

$ sudo systemctl enable docker

查看docker 详细信息

$ sudo docker info

获取镜像

$ sudo docker pull xxx
xxx 代表镜像名

查看镜像

$ sudo docker images

查看某镜像详细信息

$ sudo docker inspect xxxx
xxxx 代表 image id

查找镜像

$ sudo docker search xxx
用于查找远程仓库中的共享镜像,默认是docker hub

删除镜像

$ sudo docker rmi xxxx
xxx 可以为标签也可以为ID

创建并启动容器

$ sudo docker run -d --name xxx -p xxx:xxx imagesName

-d:不打印日志
--name :给容器命名
-p:设置主机端口和映射端口

停止容器

$ sudo docker stop imagesid

删除容器

$ sudo docker rm imagesid

查看运行中的容器

$ sudo docker ps

查看所有状态的容器

$ sudo docker ps -a

登录仓库

$ sudo docker login

登录私人仓库:

$ sudo docker login host

Rancher 介绍

官方文档:https://rancher.com/docs/rancher/v1.6/zh/

Harbor 介绍

GitHub地址:https://github.com/vmware/harbor
搭建过程:http://www.jianshu.com/p/7218e66440f9

创建镜像并上传私人仓:

创建镜像有三种方式:

  1. 基于已有的镜像的容器创建
  2. 基于本地模板导入
  3. 基于Dockerfile创建

居于已有的镜像的容器创建

$ docker commit -m "注释" -a "作者" -p 容器ID 新镜像名
-p 表示提交暂停容器运行

居于本地模板导入

$ sudo cat ubuntu-14.04-x86-minimal.tar.gz | docker import -ubuntu:14.04

居于Dockerfile创建

https://docs.docker.com/get-started/part2/

上传镜像到私人仓库

  1. 登录仓库:
    $ docker login xx.xx.xx.xx

  2. 标记Images
    $ docker tag friendlyhello xx.xx.xx.xx/firstimage/friendlyhello

  3. 上传:
    $docker push xx.xx.xx.xx/项目/IMAGE[:TAG]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 博客原文 在探讨微服务的路上,docker的概念也是经常出现,自己只是粗略的了解docker是个啥,现在是时候认真...
    rabbitGYK阅读 599评论 0 9
  • 1. 简介 Docker整个体系类似于手机系统,应用与主机、应用之间都是相互隔离,采用沙盒模式运行,一键式安装和卸...
    保持微笑_Ivan阅读 838评论 0 0
  • 一、安装 docker 具体安装步骤请参照 官方文档查看 docker 版本 二、镜像 搜索镜像 举个栗子🌰 获取...
    lancely阅读 724评论 0 2
  • ng-submit用于定义表单提交后的动作 form标签支持该元素 用例: ...
    报告老师阅读 662评论 0 0
  • 围棋在以前称之为“弈”,也是属琴棋书画四艺之一。 围棋这个东西,我以前也只是在电视上看过,现实生活中从未...
    君瞰阅读 566评论 8 1