docker安装
smartpotato 超膜裁形
本文距离上次更新已过去 0 天,部分内容可能已经过时,请注意甄别。

安装依赖包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
复制
#关闭防火墙和selinux
[root@host103 ~]# systemctl disable --now firewalld
[root@host103 ~]# setenforce 0

#将系统的网络源从备用中移出,启用
[root@host103 ~]# cd /etc/yum.repos.d/
[root@host103 yum.repos.d]# ls
bak local.repo
[root@host103 yum.repos.d]# mv bak/* .

#安装依赖包
[root@host103 yum.repos.d]# yum -y install \
yum-utils device-mapper-persistent-data lvm2

yum-utils:

  • 提供了 yum-config-manager 工具

device mapper:

  • 是Linux 内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构。
  • device mapper 存储驱动程序需要 device-mapper-persistent-data lvm2

设置阿里云镜像源

1
2
3
4
5
6
7
#配置阿里云镜像源
[root@host103 ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@host103 ~]# ls /etc/yum.repos.d/docker-ce.repo
/etc/yum.repos.d/docker-ce.repo

[root@host103 ~]# sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
[root@host103 ~]# yum makecache fast

安装Docker-CE

1
2
3
4
5
6
7
8
9
#安装Docker-CE,并启动,同时设置为开机自启
[root@host103 ~]# yum -y install docker-ce
[root@host103 ~]# systemctl enable --now docker.service

#查看docker的版本信息
[root@host103 ~]# docker version

#查看当前docker的详细信息
[root@host103 ~]# docker info

Docker基本命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
搜索镜像
docker search [name]

获取镜像
docker pull 仓库名:版本号
如果下载镜像时不指定标签,则默认会下载仓库中最新版本的镜像,即选择标签为 latest 标签

镜像加速下载
阿里云的镜像加速: 控制台---->在产品与镜像服务搜索容器镜像服务----> 镜像工具------>镜像加速器
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://k0ki64fw.mirror.aliyuncs.com"]
}
EOF

systemctl daemon-reload
systemctl restart docker

查看镜像信息

镜像下载后存放在 /var/lib/docker

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#镜像文件存放在 /var/lib/docker 目录中
[root@host103 ~]# ls /var/lib/docker/

#查看下载的镜像文件信息
[root@host103 ~]# cat /var/lib/docker/image/overlay2/repositories.json

#查看下载到本地的所有镜像信息
[root@host103 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest f8f4ffc8092c 8 days ago 133MB

#REPOSITORY: 镜像所属仓库
#TAG: 镜像的标签信息,标记同一个仓库中的不同镜像
#IMAGE ID :镜像的唯一ID号,唯一标识一个镜像
#CREATED: 镜像创建时间
#SIZE: 镜像大小

查看镜像信息

1
docker inspect id(可以不用打全)

为本地镜像添加新的标签

1
2
3
4
5
6
7
8
9
10
11
12
[root@host103 ~]# docker tag nginx:latest nginx:nginx01
[root@host103 ~]# docker images | grep nginx
nginx latest f8f4ffc8092c 8 days ago 133MB
nginx nginx01 f8f4ffc8092c 8 days ago 133MB

[root@host103 ~]# docker tag nginx:latest web:nginx01
[root@host103 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest f8f4ffc8092c 8 days ago 133MB
nginx nginx01 f8f4ffc8092c 8 days ago 133MB
web nginx01 f8f4ffc8092c 8 days ago 133MB

删除镜像

1
2
3
4
5
6
7
8
格式1: docker   rmi   仓库名称:标签

当一个镜像有多个标签时,只是删除其中指定的标签


格式2: docker   rmi  镜像ID  [-f]

会彻底删除镜像

存储镜像

将镜像保存为本地文件。

格式: docker   save   -o  存储文件名   存储的镜像

1
2
3
[root@host103 ~]# docker save -o  /opt/nginx nginx:latest
[root@host103 ~]# ls /opt/nginx
/opt/nginx

载入镜像

将镜像文件导入到镜像仓库中

格式1: docker   load   <   存储的文件

格式2: docker   load   i   存储的文件

1
2
3
4
5
[root@host103 ~]# docker load < /opt/nginx
[root@host103 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest f8f4ffc8092c 8 days ago 133MB

上传镜像到公共仓库

默认上传到 docker Hub 官方公共仓库,需要注册使用公共仓库的账号。https://hub.docker.com

可以使用 docker login 命令来输入用户名、密码和邮箱来完成注册和登录。(docker logout 登出)

在上传镜像之前,还需要先对本地镜像添加新的标签,然后再使用 docker push 命令进行上传

1
2
3
4
5
6
7
8
9
10
11
12
13
#使用docker login 输入用户名密码登录注册的公有仓库账号
[root@host103 ~]# docker login
Username:zhijiyiyu
Password:

#添加新的标签。在前面添加上自己的dockerhub的username
[root@host103 ~]# docker tag nginx:latest zhijiyiyu/nginx:web

#上传镜像
[root@host103 ~]# docker push zhijiyiyu/nginx:web

#退出登录
[root@host103 ~]# docker logout
 请作者喝咖啡