1 docker简介

1.1docker介绍

Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。

Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。

1.2Docker的应用场景

Web 应用的自动化打包和发布。

自动化测试和持续集成、发布。

在服务型环境中部署和调整数据库或其他的后台应用。

从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。

1.3Docker的优点

1、简化程序:

Docker让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是Docker的最大优势,过去需要用数天乃至数周的任务,在Docker容器的处理下,只需要数秒就能完成。

2、方便多服务、多环境部署:

Docker镜像中包含了运行环境和配置,所以Docker可以简化部署多种应用实例工作。比如 Web应用、后台应用、数据库应用、大数据应用比如Hadoop集群、消息队列等等都可以打包成一个镜像部署。

3、节省开支:

一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。

2 docker安装

2.1 centos7下安装(推荐)

Docker支持以下的CentOS版本:

CentOS 7 (64-bit)

CentOS 6.5 (64-bit) 或更高的版本

使用 yum 安装

Docker 要求 CentOS 系统的内核版本高于 3.10

# uname -r
3.10.0-693.el7.x86_64

如果有旧版本的docker,需要完全卸载

# yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

安装需要的软件包,yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。

# yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

安装docker,指定阿里源安装

# yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装

# yum install docker-ce docker-ce-cli containerd.io

启动 Docker 后台服务

# service docker start

以服务启动docker

# systemctl start docker

开机启动docker

# systemctl enable docker

参看docker状态、版本、信息

# systemctl status docker
# docker version
# docker info

Docker 默认的位置在/var/lib/docker,当前所有的镜像、容器都存储在这。

镜像加速

修改 /etc/docker/daemon.json 文件,保存后,重启docker

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

2.2windows平台下安装

win7、win8等需要利用docker toolbox来安装,国内可以使用阿里云的镜像来下载,下载地址:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/

docker toolbox是一个工具集,它主要包含以下一些内容:

Docker CLI 客户端,用来运行docker引擎创建镜像和容器
Docker Machine. 可以让你在windows的命令行中运行docker引擎命令
Docker Compose. 用来运行docker-compose命令
Kitematic. 这是Docker的GUI版本
Docker QuickStart shell. 这是一个已经配置好Docker的命令行环境
Oracle VM Virtualbox. 虚拟机

下载完成之后直接点击安装,安装成功后,桌边会出现三个图标,入下图所示:

在这里插入图片描述

点击Docker QuickStart图标来启动Docker Toolbox终端。

如果系统显示User Account Control窗口来运行VirtualBox修改你的电脑,选择Yes。
在这里插入图片描述

这界面就可以输入docker命令。

win10安装需要开启Hyper-V。

在程序和功能选择打开或关闭windows功能,选择Hyper-V,确定。

注意:这个功能在win10专业版以上才有。

在这里插入图片描述

安装Toolbox,

最新版Toolbox下载地址: https://www.docker.com/get-docker

点击 Get Docker Community Edition,并下载Windows的版本:

在这里插入图片描述

下载完成,点击Docker for Windows Installe.exe,完成安装。

安装完成后Docker会自动启动。通知栏上会出现个小鲸鱼的图标。

表示docker正在运行。点击图标进入后就可以使用docker命令操作了。

建议,windows平台建议安装虚拟机,虚拟机安装linux来操作更好。

2.3 MacOS平台下安装

macOS可以使用Homebrew来安装Docker。

Homebrew的Cask已经支持Docker for Mac因此可以很方便的使用Homebrew Cask来进行安装:

$ brew cask install docker

==> Creating Caskroom at /usr/local/Caskroom
==> We'll set permissions properly so we won't need sudo in the future
Password:          # 输入 macOS 密码
==> Satisfying dependencies
==> Downloading https://download.docker.com/mac/stable/21090/Docker.dmg
######################################################################## 100.0%
==> Verifying checksum for Cask docker
==> Installing Cask docker
==> Moving App 'Docker.app' to '/Applications/Docker.app'.
🍺  docker was successfully installed!

在载入Docker app后,点击Next,可能会询问你的macOS登陆密码,你输入即可。之后会弹出一个 Docker 运行的提示窗口,状态栏上也有有个小鲸鱼的图标。打开图标可以使用docker命令操作了。

也可以手动安装(略)。

3 docker常用命令

查找镜像

# docker search image_name

拉取docker镜像

# docker pull image_name

在本地主机上使用一个不存在的镜像时Docker就会自动下载这个镜像。如果想预先下载这个镜像,我们可以使用docker pull命令来下载它。

查看宿主机上的镜像

Docker镜像保存在/var/lib/docker目录下:

# docker images

各个选项说明:

REPOSITORY:表示镜像的仓库源

TAG:镜像的标签

IMAGE ID:镜像ID

CREATED:镜像创建时间

SIZE:镜像大小

删除镜像

# docker rmi image_name/image_id

查看当前有哪些容器正在运行

# docker ps

查看所有容器

# docker ps -a

启动、停止、重启容器命令

# docker start container_name/container_id

# docker stop container_name/container_id

# docker restart container_name/container_id

进入容器

# docker attach container_name/container_id

或者以一个伪终端的形式进入容器

# docker exec -it container_name/container_id bash

删除容器

# docker rm container_name/container_id

删除所有停止的容器

# docker rm $(docker ps -a -q)

Logo

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

更多推荐