Docker 操作指南之常用操作篇

Posted zuozewei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker 操作指南之常用操作篇相关的知识,希望对你有一定的参考价值。

一、docker 安装

1、简易安装

echo deb http://get.docker.io/ubuntu docker main \\| sudo tee /etc/apt/sources.list.d/docker.list sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9

sudo apt-get update

sudo apt-get install -y lxc-docker

2、安装最新版本

  1. 卸载旧版本 docker

全新安装时,无需执行该步骤

apt-get --purge remove docker docker-engine docker.io lxc-docker
  1. 更新系统软件
apt-get update
  1. 安装依赖包
apt-get install apt-transport-https ca-certificates curl software-properties-common
  1. 添加官方密钥
    执行该命令时,如遇到长时间没有响应说明网络连接不到 docker 网站,需要使用代-理进行。
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \\| sudo apt-key add -

显示 OK,表示添加成功.

  1. 添加仓库
add-apt-repository \\\\ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \\$(lsb_release -cs) stable"
  1. 再次更新软件
apt-get update
  1. 安装 docker
    如果想指定安装某一版本,可使用 apt-get install docker-ce=\\ 命令,把 \\ 替换为具体版本即可。
    以下命令没有指定版本,默认就会安装最新版
apt-get install docker-ce
  1. 查看 docker 版本
docker -v

二、非 root 用户管理 docker

  1. 创建 docker 组
groupadd docker
  1. 将非 root 用户加入 docker 组
gpasswd -a ${USER} docker
  1. 重新启动 docker 服务
systemctl restart docker
  1. 用户退出系统重新登陆

三、修改默认存储

默认情况下 Docker 的存放位置为:/var/lib/docker

可以通过下面命令查看具体位置:

docker info \\| grep "Docker Root Dir"

修改默认存储有两种方法:

1、建立软连接

首先停掉 Docker 服务:

systemctl stop docker 或者 service docker stop

然后移动整个/var/lib/docker` 目录到目的路径,建立软连接:

mv /var/lib/docker /data ln -s /data/docker /var/lib/docker |

2、修改配置文件

centos6:

vi /etc/sysconfig/docker

添加如下内容:

OPTIONS=--graph="/data/docker" --selinux-enabled -H fd://

centos7:

vi /usr/lib/systemd/system/docker.service

添加如下内容:

ExecStart=/usr/bin/dockerd --graph /data/docker

Ubuntu:

vi /etc/default/docker

添加如下内容:

OPTIONS=--graph="/data/docker" -H fd://\\#

或者

DOCKER_OPTS="-g /data/docker"

以上配置修改完成后,均需要重启 docker

systemctl daemon-reload && systemctl restart docker.service
  • 如果 docker13 以上版本
vi /etc/docker/daemon.json

加入如下内容:

{
"graph":"/data/docker"
}

和其他参数一块添加:

{ 
"registry-mirrors": ["https://n9h3vi0d.mirror.aliyuncs.com"], #镜像加速地址
"insecure-registries": ["harbor.test.com","192.168.119.119:1080"], #非SSL源管理镜像。
"graph": "/data/docker", "max-concurrent-downloads": 10 
}

四、添加加速器

方法一:

vi /etc/default/docker

加入如下内容:

DOCKER_OPTS="\\$DOCKER_OPTS --registry-mirror=https://n9h3vi0d.mirror.aliyuncs.com"

重启 docker:

systemctl daemon-reload && systemctl restart docker.service

方法二:

vi /etc/docker/daemon.json

加入如下内容:

{
"registry-mirrors":["https://n9h3vi0d.mirror.aliyuncs.com"]
}

五、获取 images

我们如何获取新的 images 呢?当我们启动容器使用的 image 不再本地主机上时,docker 会自动下载他们。

sudo docker run -t -i ubuntu:14.04 /bin/bash 
sudo docker run -t -i ubuntu:12.04 /bin/bash

这很耗时,我们可以使用 docker pull 命令来预先下载我们需要的 image。下面的例子下载一个 centos 镜像。

$ docker pull centos
  Pulling repository centos
  b7de3133ff98: Pulling dependent layers
  5cc9e91966f7: Pulling fs layer
  511136ea3c5a: Download complete
  ef52fb1fe610: Download complete

我们可以看到下载的 image 的每一个层次,这样当我们使用这个 image 来启动容器的时候,它就可以马上启动了。

docker run -t -i centos /bin/bash

六、查找 images

docker 的一个特点是很多人因为各种不同的用途创建了各种不同的 images。它们都被上传到了 docker hub 共有仓库上,我们可以在 docker hub 的网站上来查找它们。使用 docker search 命令。比如,当我们的团队需要 ruby 和 sinatra 作为web应用程序的开发时,我们使用 docker search 来搜索合适的 image,使用关键字 sinatra

$ sudo docker search sinatra
NAME DESCRIPTION STARS OFFICIAL
AUTOMATED
training/sinatra Sinatra training image 0 [OK]
marceldegraaf/sinatra Sinatra test app 0
mattwarren/docker-sinatra-demo 0 [OK]
luisbebop/docker-sinatra-hello-world 0 [OK]
bmorearty/handson-sinatra handson-ruby + Sinatra for Hands on with D... 0
subwiz/sinatra 0
bmorearty/sinatra 0

我们看到返回了很多包含 sinatra 的 images。其中包括 image 名字、描述、星级(表示该 image 的受欢迎程度)、是否官方创建、是否自动创建。官方的 images 是 stackbrew 项目组创建和维护的,autimated 资源允许你验证 image 的来源和内容。

现在我们已经回顾了可用的 images,并决定使用 training/sinatra 镜像。到目前为止,我们看到了 2 种 images 资源。比如ubuntu,被称为基础或则根镜像。这些基础镜像是 docker 公司创建、验证、支持、提供。他们往往使用一个单词作为他们的名字。

还有一种类型,比如我们选择的 training/sinatra 镜像。它是由 docker 的用户创建并维护的,你可以通过指定 image 名字的前缀来指定他们,比如 training。

相关系列:

以上是关于Docker 操作指南之常用操作篇的主要内容,如果未能解决你的问题,请参考以下文章

Docker 操作指南之常用命令篇

测试开发之系统篇-Docker常用操作

测试开发之系统篇-Docker 常用操作

Docker 操作指南之常见使用篇

Docker 操作指南之使用示例篇

Docker 操作指南之运行命令篇