【Docker】Linux部署Docker

InterviewCoder

# 【Docker】Linux 部署 Docker

接触一段时间 docker,这个工具大大提高了开发者打包应用的效率。

一直都是直接把镜像扔到到 docker 里构建容器启动,并没有深入了解。

在这里插入图片描述
本文由 alpha0808 大佬指导,如果要了解 docker 的概念以及命令,请去看大佬这篇 DOCKER 之入门篇

本篇文章集中于 linux 系统下对 docker 及相关组件的部署。

# 目录

# 一、安装 docker

按照官网 https://docs.docker.com/engine/install/centos/ 执行命令即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#1.yum检查更新
sudo yum check-update
#2.删除旧版本
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
#3.安装gcc环境
yum -y install gcc
yum -y install gcc-c++
#4.安装依赖项
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
#5.将 Docker 存储库添加到 CentOS
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#使用阿里服务器下载
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#如果没有执行命令1更新,那么此时执行命令即可
yum makecache fast
#6.下载docker
sudo yum install -y docker #注意这样下载需要接受GPG秘钥,相当于一个数字指纹,指纹格式:060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
#或者社区版本
yum -y install docker-ce
#7.检查版本
docker version
#或者
docker -v
#8.查看docker进程
docker ps

执行第 8 步,如果报错
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemo
是因为 docker 还没启动

解决方案:

1
systemctl start docker.service

# 二、镜像加速

使用阿里云镜像地址来加速镜像下载的速度

# 获取阿里云镜像地址

点击容器镜像服务
镜像工具镜像加速器,生成加速器地址

在这里插入图片描述

# 添加加速器地址

切换目录至 /etc/docker

1
cd /etc/docker

编辑 daemon.js 文件

1
2
3
{
"registry-mirrors": ["加速器地址"]
}

重启 docker 的伴随线程

1
systemctl daemon-reload

重启 docker 服务

1
systemctl restart docker

# 三、可视化管理工具 Portainer

# 简介

Portainer 是 Docker 的图形化管理工具,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm 集群和服务等集中管理和操作、登录用户管理和控制等功能

# 展示

  • 首页
    包含 docker-compose、容器、镜像、卷、网络总体概况
    在这里插入图片描述
  • 容器
    包含容器的启动、暂停、杀死进程、重启、新增,监控,日志查看,容器控制台等功能。
    在这里插入图片描述
  • 镜像
    包含镜像详细查看、删除、导入、导出等功能
    在这里插入图片描述

# 安装

采用 docker 安装

# 镜像下载

查询 portainer 镜像

1
docker search portainer

在这里插入图片描述

下载 portainer 镜像

1
docker pull portainer/portainer

在这里插入图片描述

# 容器运行

1
docker run -p 9000:9000 --name portainer -v /var/run/docker.sock:/var/run/docker.sock -d portainer/portainer

开放 9000 端口

1
firewall-cmd --zone=public --add-port=9000/tcp --permanent && firewall-cmd --reload

# 创建用户

访问 9000 端口,第一次登录设置管理员账号和密码
在这里插入图片描述

# docker 连接管理

在这里插入图片描述
可以选择管理本地 Local 和远程 Remote 的 Docker 两个选项,我们安装在本机,直接选择 Local,然后 Connect 进入管理界面
在这里插入图片描述
点击 connect,报错

Failure dial unix /var/run/docker.sock: connect: permission denied

可以猜测是 SElinux 的问题,看 SELinux 状态:sestatus 命令进行查看

1
2
/usr/sbin/sestatus -v      ##如果SELinux status参数为enabled即为开启状态
SELinux status: enabled

修改 /etc/selinux/config 文件,保存后重启机器

SELINUX=enforcing 改为 SELINUX=disabled

再次访问 9000,连接 local,成功
在这里插入图片描述

# 四、补充

# docker 开机自启

1
sudo systemctl enable docker

# 容器开机自启

以上面的 docker 可视化管理工具 portainer 为例,希望开机的时候,自动启动镜像

启动命令加–restart=always

1
docker run -p 9000:9000 --name portainer --restart=always  -v /var/run/docker.sock:/var/run/docker.sock -d portainer/portainer

如果已经在运行的镜像

1
docker update --restart=always portainer

# 关于我

Brath 是一个热爱技术的 Java 程序猿,公众号「InterviewCoder」定期分享有趣有料的精品原创文章!

InterviewCoder

非常感谢各位人才能看到这里,原创不易,文章如果有帮助可以关注、点赞、分享或评论,这都是对我的莫大支持!

评论