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

                          

 

安装Docker

 
  1. centos7为例

  2.  
  3. #安装需要的软件包 :yum install -y yum-utils device-mapper-persistent-data lvm2

  4.  
  5. #设置yum源 :yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

  6.  
  7. #安装docker:sudo yum install docker

  8.  
  9. #启动docker并让它随系统自启

  10. sudo service docker start

  11. sudo chkconfig docker on

组成部分

Docker Client(客户端)

  • docker客户端是用户与docker进行交互的主要方式,当在终端输入docker命令时,对应的就会在服务端产生对应的作用,并返回结果给客户端。

Docker Server (服务端)

  • docker daemon就是docker的服务端,它负责监听docker api的请求并管理docker对象,如镜像、容器、网络、数据卷等

Docker Registries

  • 俗称docker仓库,专门用于储存镜像的云服务环境,docker hub就是一个公有的存放镜像的地方,类似GitHub储存代码文件。

Docker Objects (对象):

  • 镜像:一个docker的可执行文件,其中包括运行应用程序所需的所有代码内容、依赖库、环境变量和配置文件
  • 容器:镜像被运行起来后的实例
  • 网络:外部或者容器间如何互相访问的网络方式,如host模式、bridge模式等
  • 数据卷:容器与宿主机之间、容器与容器之间共享存储方式,类似虚拟机与主机之间的共享文件目录

docker基本使用

常用命令

 
  1. docker环境信息 -> info、version

  2. 镜像管理 -> build、images、import、load、rmi、save、tag、commit

  3. 容器运维操作 -> attach、export、inspect、port、ps、rename、stats、top、wait、cp、diff、update

  4. 容器生命周期 start、stop、restart、pause、rm、run、unpause、kill、create

  5. 镜像仓库命令 -> login、logout、pull、push、search

查看API文档

docker <management Commands> --help

搜索需要的镜像

下载镜像到docker本地服务器中

 
  1. 配置国内镜像源,提高拉取速度

  2. echo {"registry-mirrors": ["http://hub-mirror.c.163.com"]} > /etc/docker/daemon.json

  3. 下载centos镜像

  4. docker pull centos

 

docker的简单使用

显示下载镜像

测试创建容器

开启容器,运行一个后台终端

 
  1. docker run -itd centos /bin/bash

  2. #options解释

  3. -i -> Allocate a pseudo-TTY

  4. -t -> Keep STDIN open even if not attached

  5. -d -> Run container in background and print container ID

注意:容器之间是互不干扰的

通过容器的修改文件,生成一个新的镜像

提交到docker hub,线上保存

 
  1. docker login -u username -p password

  2. docker commit image

 

对于docker用处和作用,目前个人知道的有两个,一是做集群处理,另一个就是创建自己的独立开发环境容器,随时可以用。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐