Docker运行环境安装

京东云开发者
• 阅读 247

作者:京东科技 林中

Docker是一个开放的平台,用于开发、发布和运行应用程序。Docker分离了应用程序和运行应用的基础设施,从而实现了软件的快速交付。利用docker提供的一系列功能,包括构建、发布、测试和部署,可以帮助开发人员将最新版本代码应用到生产环境中。

Docker可以安装在多个平台中,包括Mac、Windows和Linux。不过,生产环境还是推荐在Linux上运行,以下以主流的Linux操作系统(CentOS和ubuntu)为例,说明Docker运行环境的安装过程。

一、安装

1、CentOS

1.1、检查操作系统版本

Docker官方建议使用最新的稳定版本CentOS 9(stream)。不过,从docker-ce的发布软件包来看,仍然支持CentOS7和CentOS8。详细情况可参考清华大学的镜像站,https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/

1.2、卸载老版本的docker或docker-engine

如果你之前安装过 docker,使用以下命令删除旧的版本和依赖软件。

sudo yum remove docker \                 docker-client \
                 docker-client-latest \
                 docker-common \
                 docker-latest \
                 docker-latest-logrotate \
                 docker-logrotate \
                 docker-engine

需要说明的是:删除旧版本docker,并不会删除使用中的镜像、容器实例、存储卷和网络配置,这些内容仍然保存在/var/lib/docker目录下。

1.3、安装docker运行环境

安装docker engine的方法有多种,

1)docker官方提供的yum安装源仓库(repositories),可以方便的实现安装和更新任务。 这也是官方推荐的方式。

2)下载docker的RPM软件包,手工进行安装和后续的更新。这个方式一般是在企业内网环境中,无法访问internet的情况下采用。

3)使用自动化的安装脚本https://get.docker.com/,自动完成安装。适合于开发和测试环境。缺点是,因为国家网络安全管理的限制,如何获取这个脚本?本身就是一个问题。建议初学者,还是应该掌握软件包管理的方法(yum,或者rpm),不要过度依赖于安装脚本。

需要注意的是:安装脚本中默认使用了国外的安装源,文件的下载速度较低。脚本中允许指定国内的两个安装源, --mirror=Aliyun(或者AzurechinaCloud),可以加快部署。

以下使用方式1(docker官方提供的yum安装源仓库)进行安装:

1、安装yum仓库管理工具,下载 repo 文件,并把软件仓库地址替换为国内镜像站

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sed -i 's+https://download.docker.com+https://mirrors.tuna.tsinghua.edu.cn/docker-ce

需要注意的是:当download.docker.com无法访问时,可以通过国内镜像站替代,比如:https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

2、安装docker engine、containerd和docker-compose

2.1 安装最新版本

sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

2.2 (可选)安装指定版本

1)获取仓库中可用的版本清单

yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64    3:27.1.1-1.el9    docker-ce-stable
docker-ce.x86_64    3:27.1.0-1.el9    docker-ce-stable
<...>

说明:VERSION_STRING = 3:27.1.1-1.el9

2)安装指定的版本

sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-buildx-plugin docker-compose-plugin

3)启动docker

sudo systemctl start docker

2、ubuntu

注意:防火墙限制

Docker仅兼容iptables-nft和iptables-legacy,使用nft创建的防火墙规则在docker环境下不生效。

2.1、检查操作系统版本

Docker官方建议使用的版本包括,

              Ubuntu Noble 24.04 (LTS)

              Ubuntu Jammy 22.04 (LTS)

              Ubuntu Focal 20.04 (LTS)

不过,从docker-ce的发布软件包来看,仍然支持ubuntu的历史版本。详细情况可参考清华大学的镜像站,https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/dists/。

2.2、卸载老版本的docker或docker-engine

如果你之前安装过 docker,使用以下命令删除旧的版本和依赖软件:

for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

说明:删除旧版本docker,并不会删除使用中的镜像、容器实例、存储卷和网络配置,这些内容仍然保存在/var/lib/docker目录下。

2.3、安装docker运行环境

安装docker engine的方法有多种,

1)docker官方提供的apt安装源仓库(repository)

2)手工进行安装和后续的更新。

3)使用自动化的安装脚本https://get.docker.com/,适合于开发和测试环境。

以下使用方式1(docker官方提供的apt安装源仓库)进行安装:

1、首先安装依赖:

apt-get update
apt-get install ca-certificates curl gnupg

2、信任 Docker 的 GPG 公钥并添加仓库:

install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  tee /etc/apt/sources.list.d/docker.list > /dev/null

3、最后安装

3.1 安装最新版本

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

3.2 (可选)安装指定版本

1)获取仓库中可用的版本清单

apt-cache madison docker-ce | awk '{ print $3 }'

5:27.1.1-1ubuntu.24.04noble

5:27.1.0-1ubuntu.24.04noble

...

说明:VERSION_STRING=5:27.1.1-1ubuntu.24.04noble

2)安装指定的版本

VERSION_STRING=5:27.1.1-1~ubuntu.24.04~noble
sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin

3)启动docker

sudo systemctl start docker

二、配置docker镜像国内加速

创建或更新文件:/etc/docker/daemon.json,内容如下:

{
    "registry-mirrors": [
        "https://docker.m.daocloud.io",
        "https://docker.nju.edu.cn",
        "https://dockerproxy.com",
        "https://docker.udayun.com",
        "https://noohub.ru",
        "https://huecker.io",
        "https://dockerhub.timeweb.cloud"
    ]
}

配置完成后,需要重新启动docker

sudo systemctl restart docker

三、运行hello-world镜像,验证安装结果

sudo docker run hello-world

说明:以上命令执行过程中,会首先拉取hello-world镜像,然后运行容器实例,当看到控制台中显示包含“Hello from Docker!”的提示信息时,表示安装成功。

点赞
收藏
评论区
推荐文章
Stella981 Stella981
3年前
Nomad入门
Nomad简介Nomad是一个管理机器集群并在集群上运行应用程序的工具。Nomad的特点:支持docker,Nomad的job可以使用docker驱动将应用部署到集群中。Nomad安装在linux中仅需单一的二进制文件,不需要其他服务协调,Nomad将资源管理器和调度程序的功能集成到一个系统中。多数
Stella981 Stella981
3年前
Docker学习笔记
docker通过带环境安装来解决开发和运维之间的鸿沟问题,属于云计算方面的技术。也就是说安装的时候把原始环境一模一样地复制过来,开发人员利用Docker来消除协作代码时,“在我的机器上可以正常工作啊"的问题。一次构建,处处运行。dev本地测试完毕后,打包递交docker镜像,而运维则只装一个docker作为鲸鱼,将各个镜像放到鲸鱼背上作为独立的集装箱
Wesley13 Wesley13
3年前
Docker镜像与容器命令
Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、baremetal、OpenStack集群和其他的基础应用平台。Docker通常用于如下场景:web应用的自动化打包和发布;自动化测试和持续集成、发布;
Stella981 Stella981
3年前
Docker与容器
Docker介绍1\.Docker主要解决什么问题  Docker对外宣称的是Build、Ship和Run,Docker要解决的核心问题就是快速地干这三件事情。它通过将运行环境和应用程序打包到一起,来解决部署的环境依赖问题,真正做到跨平台的分发和使用。而这一点和DevOps不谋而合,通过Docker可以大大提升开发
Stella981 Stella981
3年前
Docker(一):Docker入门
简介Docker是一个开源的容器引擎,可以帮助我们更快的交付应用。Docker可将应用程序和基础设施层隔离,并且能将基础设施当作程序进行管理。可更快的打包、测试以及部署应用程序,并可减少从编写到部署代码的周期。Docker架构!(https://img2018.cnblogs.com/blog/1040
Stella981 Stella981
3年前
Docker镜像瘦身
Docker是一个用于开发,交付和运行应用程序的开发平台。它能够将应用程序和基础架构分开,保证开发,测试,部署的环境完全一致,从而达到快速交付的目的。但是在实际项目中,会对项目中的模块或者服务进行细分,导致部署的镜像过多(50个),过大(打包压缩后的镜像达50G),这给部署带来了不小的隐患,特别是私有化部署(通过移动介质拷贝镜像进行部署)。
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Stella981 Stella981
3年前
Docker镜像优化:从1.16GB到22.4MB
Docker是一个供软件开发人员和系统管理员使用容器构建、运行和与分享应用程序的平台。容器是在独立环境中运行的进程,它运行在自己的文件系统上,该文件系统是使用docker镜像构建的。镜像中包含运行应用程序所需的一切(编译后的代码、依赖项、库等等)。镜像使用Dockerfile文件定义。术语dockerization或containeriz
Stella981 Stella981
3年前
Docker 容器介绍
Docker容器介绍_Docker_是一个基于_Go_语言的开源应用容器引擎,它既能实现虚拟化,又可用于将应用服务打包成轻量、可移植的容器,从而可以发布到任何_Linux_平台。除了优秀了沙箱机制外,_Docker_容器的开销也极低。正如其名,_Docker_所做的事情正是以一个集装箱的身份承载应用服务的运行
玩转服务器之环境篇:PHP和Python环境部署指南 | 京东云技术团队
前几篇文章中讲解了如何搭建docker和JavaWeb环境的方法,本篇文章来教大家搭建一个好的PHP和Python环境,可以帮助开发和运行PHP和Python应用程序,使其更加高效和稳定。