容器化部署博客(1)—— 安装 docker 和 docker-compose

2022-09-26 17:35:10 浏览数 (1)

我的博客已经在前段时间变更为容器化部署了,部署的方式改变之后,部署时间和需要做的准备工作缩短了很多,现在如果环境上面容器的相关环境已经准备好,部署一次博客只需要10分钟就够了,速度相当快。

由于我的博客部署使用的是 docker-compose 所以,这篇文章作为博客容器化部署的前提文章来介绍一下我安装 docker 和 docker-compose 的方式,有需求的人可以参考一下。

安装docker

首先来说一下 docker 版本的选择问题,可以看一下下面这段引言,就能知道一个大概的选择了。

docker-io, docker-engin 是以前早期的版本,版本号是 1.*,默认centos7 安装的是docker-io,最新版是 1.13;Ubuntu默认安装的是docker-ce ,docker-ce 是社区版本,适用于刚刚开始docker 和开发基于docker研发的应用开发者或者小型团队,所以这里统一为安装docker-ce

更新软件

Ubuntu 执行:

代码语言:javascript复制
sudo apt-get update;sudo apt-get upgrade

CentOS 执行:

代码语言:javascript复制
sudo yum update

Ubuntu 安装docker

Ubuntu 使用 apt-get 命令安装 docker,命令如下:

代码语言:javascript复制
sudo apt-get install docker.io

安装完成之后可以查看一下 docker 的版本信息:

代码语言:javascript复制
~$ docker -v
Docker version 18.06.1-ce, build e68fc7a

不过,现在虽然安装了 docker,但是当前用户是无法使用 docker 命令的,所以需要把当前用户加入到 docker 用户组中,命令如下:

代码语言:javascript复制
sudo usermod -aG docker $USER

添加完用户之后,需要把当前用户退出登录一下,重新登录之后就可以使用 docker 命令了,比如查看 docker 的信息:

代码语言:javascript复制
docker info

CentOS 安装 docker

  • 卸载原有的 docker
代码语言:javascript复制
sudo yum remove docker 
                  docker-client 
                  docker-client-latest 
                  docker-common 
                  docker-latest 
                  docker-latest-logrotate 
                  docker-logrotate 
                  docker-engine
  • 清理残留目录
代码语言:javascript复制
sudo rm -rf /var/lib/docker
sudo rm -rf /var/run/docker
  • 安装 yum-utils,它提供了 yum-config-manager,可用来管理yum源
代码语言:javascript复制
sudo yum install -y yum-utils
  • 添加yum源
代码语言:javascript复制
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 更新yum索引
代码语言:javascript复制
sudo yum makecache fast
  • 安装 docker-ce
代码语言:javascript复制
sudo yum install -y docker-ce
  • 设置为系统服务
代码语言:javascript复制
sudo systemctl enable docker

设置镜像仓库源

默认的镜像仓库是国外的,拉取镜像的速度很慢,所以为了方便镜像获取,可以更改镜像源,方法是添加一个配置文件

代码语言:javascript复制
sudo vi /etc/docker/daemon.json

添加的信息如下:

代码语言:javascript复制
{
 "registry-mirrors": ["https://registry.docker-cn.com"]
}

添加完命令之后,需要重启一下容器服务:

代码语言:javascript复制
sudo systemctl daemon-reload 
sudo systemctl restart docker

现在执行一下 info 命令,可以查看到 docker 的镜像源已经更改为国内的了,信息如下:

代码语言:javascript复制
Registry Mirrors:
 https://registry.docker-cn.com/

docker 已经按照好了,现在,可以试一下拉取一个镜像了

代码语言:javascript复制
docker pull nginx

安装 docker-compose

如果是 CentOS 系统,没有安装 pip ,可以使用如下命令安装 pip:

代码语言:javascript复制
sudo yum -y install epel-release
sudo yum -y install python-pip
sudu yum clean all

然后可以直接使用 pip 来安装,需要 sudo 权限

代码语言:javascript复制
sudo pip install docker-compose -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

更多安装方式:https://blog.csdn.net/ytangdigl/article/details/103831739

安装完成之后,可以查看一下 docker-compose 的版本信息

代码语言:javascript复制
~$ docker-compose -v
docker-compose version 1.23.2, build 1110ad0

好了,现在 docker 和 docker-compose 都安装好了,可以开始尝试容器化部署服务了,一些简单的容器使用可以参考我 Github 上列举的几个例子,地址是 https://github.com/Hopetree/docker-demos。

另外:博客的容器化部署方式之后的文章会更新,敬请关注!

常用镜像

官方安装文档

文档地址:https://docs.docker.com/install/

官方 Dockerfile

  • nginx: https://github.com/nginxinc/docker-nginx
  • mysql: https://github.com/docker-library/mysql
  • python: https://github.com/docker-library/python
  • redis: https://github.com/docker-library/redis

镜像 Tag 查询

v2 接口:https://registry.hub.docker.com/v2/repositories/{repo_name}/{image_name}/tags/

这个接口可以查看到镜像比较详细的信息,接口是分页显示,个人觉得这个接口适合用来对比 tag ,用来选择。

例子:

代码语言:javascript复制
# 官方镜像查询
https://registry.hub.docker.com/v2/repositories/library/jenkins/tags/
# 其他仓库镜像查询
https://registry.hub.docker.com/v2/repositories/jenkins/jenkins/tags/

v1 接口:https://registry.hub.docker.com/v1/repositories/{repo_name}/tags

这个接口直接显示一个镜像的所有 tag ,但是只有 tag 的名称没有其他信息,所以个人觉得这个接口比较适合查找 tag 是否存在。

例子:

代码语言:javascript复制
# 官方镜像
https://registry.hub.docker.com/v1/repositories/jenkins/tags
# 其他仓库镜像
https://registry.hub.docker.com/v1/repositories/jenkins/jenkins/tags

版权声明:如无特殊说明,文章均为本站原创,转载请注明出处 本文链接:https://cloud.tencent.com/developer/article/2123453 许可协议:署名-非商业性使用 4.0 国际许可协议

0 人点赞