概述

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

             

docker 容器跑项目 docker容器开发_centos

             

docker 容器跑项目 docker容器开发_docker 容器跑项目_02

 

安装Docker

centos7为例

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

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

#安装docker:sudo yum install docker

#启动docker并让它随系统自启
sudo service docker start 
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 容器跑项目 docker容器开发_docker 容器跑项目_03

docker基本使用

常用命令

docker 容器跑项目 docker容器开发_docker_04

docker环境信息 -> info、version
镜像管理 -> build、images、import、load、rmi、save、tag、commit
容器运维操作 -> attach、export、inspect、port、ps、rename、stats、top、wait、cp、diff、update
容器生命周期 start、stop、restart、pause、rm、run、unpause、kill、create
镜像仓库命令 -> login、logout、pull、push、search

查看API文档

docker <management Commands> --help

docker 容器跑项目 docker容器开发_Docker_05

搜索需要的镜像

docker 容器跑项目 docker容器开发_docker_06

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

配置国内镜像源,提高拉取速度
echo {"registry-mirrors": ["http://hub-mirror.c.163.com"]} > /etc/docker/daemon.json
下载centos镜像
docker pull centos

docker的简单使用

显示下载镜像

docker 容器跑项目 docker容器开发_do_07

测试创建容器

docker 容器跑项目 docker容器开发_Docker_08

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

docker run -itd centos /bin/bash
#options解释
-i  ->  Allocate a pseudo-TTY
-t ->  Keep STDIN open even if not attached
-d -> Run container in background and print container ID

docker 容器跑项目 docker容器开发_docker_09

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

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

docker 容器跑项目 docker容器开发_docker 容器跑项目_10

提交到docker hub,线上保存

docker login -u username -p password
docker commit image

 

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