Docker 操作指南之常用操作篇

举报
zuozewei 发表于 2021/10/10 20:40:31 2021/10/10
【摘要】 Docker 操作指南之常用操作篇

docker 安装

简易安装

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

安装最新版本

  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"

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

建立软连接

首先停掉 Docker 服务:

systemctl stop docker 或者 service docker stop

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

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

修改配置文件

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。

相关系列:

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。