Linux 中 Docker 的部署安装

本文介绍在 Ubuntu 系统安装 Docker 的详细步骤。先修改镜像源,卸载旧版本,使用 APT 安装,添加 HTTPS 传输软件包及 CA 证书、GPG 密钥。可通过脚本自动安装,启动 Docker 后建立用户组,添加软件源,最后测试安装是否正确。

0x01 准备工作

修改 Ubuntu 镜像源

sudo  cp  /etc/apt/sources.list  /etc/apt/sources.list.bak #备份文件
sudo  vim  /etc/apt/sources.list #修改源文件

将以下内容替换到源文件

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
sudo  apt-get update #更新软件源
sudo  apt-get dist-upgrade #非必要

也可以使用这个一键解决,一键更换阿里源

bash <(curl -sL https://bash.liuwenwen.net/changesource.sh)

该脚本代码

sudo tee /etc/apt/sources.list <<-'EOF'
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
EOF
sudo apt update

0x02 卸载 docker 旧版本

$ sudo apt-get remove docker \
               docker-engine \
               docker.io

0x03 使用 APT 安装

apt 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。

$ sudo apt-get update

$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。
为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥。

$ curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

# 官方源
# $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

0x04 安装 Docker

更新 apt 软件包缓存,并安装 docker-ce:

$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io

使用脚本自动安装

在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Ubuntu 系统上可以使用这套脚本安装,另外可以通过 --mirror 选项使用国内源进行安装:

若你想安装测试版的 Docker, 请从 test.docker.com 获取脚本

# $ curl -fsSL test.docker.com -o get-docker.sh
$ curl -fsSL get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh --mirror Aliyun
# $ sudo sh get-docker.sh --mirror AzureChinaCloud

执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker 的稳定(stable)版本安装在系统中。

0x05 启动 Docker

$ sudo systemctl enable docker
$ sudo systemctl start docker

0x06 建立 docker 用户组

默认情况下,docker 命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。因此,更好地做法是将需要使用 docker 的用户加入 docker 用户组。

建立 docker 组:

$ sudo groupadd docker

将当前用户加入 docker 组:
如果 user 是 root 其实也就没有添加的必要了

sudo usermod -aG docker $USER

0x07 向 sources.list 中添加 docker 软件源

$ sudo add-apt-repository \
    "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
    $(lsb_release -cs) \
    stable"


# 官方源
# $ sudo add-apt-repository \
#    "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
#    $(lsb_release -cs) \
#    stable"

以上命令为添加稳定版本的 Docker APT 镜像源,如需测试版本的 Docker 请将 stable 改为 test。

0x08 启动 Docker

$ sudo systemctl enable docker
$ sudo systemctl start docker

0x09 建立 docker 用户组

默认情况下,docker 命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。因此,更好地做法是将需要使用 docker 的用户加入 docker 用户组。
建立 docker 组:

$ sudo groupadd docker

将当前用户加入 docker 组:

$ sudo usermod -aG docker $USER

退出当前终端并重新登录,进行如下测试。

0x10 测试 Docker 是否安装正确

$ docker run hello-world

在这里插入图片描述

### Linux系统上的Docker离线安装 对于Linux系统的Docker离线安装,可以采用分步法或通过编写并运行一个shell脚本来实现自动化的一键安装过程[^3]。 #### 准备工作 首先,在一台联网机器上下载适用于目标架构的Docker二进制文件。可以从官方提供的静态链接页面获取所需的`docker.tgz`压缩包[^1]: ```bash wget https://download.docker.com/linux/static/stable/x86_64/docker-<version>.tgz ``` 接着将此`.tgz`文件传输至待安装Docker的目标主机。 #### 安装流程 创建名为`install.sh`的新Shell脚本,并向其中加入以下指令来完成Docker的离线安装操作: ```sh #!/bin/sh echo '解压tar包' tar -xvf $1 echo '将docker目录下所有文件复制到/usr/bin目录' cp docker/* /usr/bin/ echo '将docker.service 复制到/etc/systemd/system/目录' cp docker.service /etc/systemd/system/ echo '添加文件可执行权限' chmod +x /etc/systemd/system/docker.service echo '重新加载配置文件' systemctl daemon-reload echo '启动docker' systemctl start docker echo '设置开机自启' systemctl enable docker.service echo 'docker安装成功' docker -v ``` 上述脚本中的参数 `$1` 应替换为实际上传输过来的那个 Docker 压缩包名称。之后赋予该脚本执行权限并通过命令行调用它来进行安装: ```bash chmod +x install.sh ./install.sh docker-<version>.tgz ``` 这会依次执行一系列必要的动作——从解压存档、拷贝必要组件到最后激活服务,从而确保整个环境搭建顺利完成。 ### 部署项目 一旦完成了Docker本身的离线安装,则可以根据具体需求拉取所需镜像以及构建容器化应用。由于是在无网络连接的情况下作业,所以提前准备好所有的依赖项至关重要;比如预先打包好应用程序及其关联资源(如数据库初始化SQL脚本),并将它们一同迁移到目的服务器上去。 如果事先已知要使用的镜像列表,可以在另一台能够上网的工作站里把这些镜像导出成 `.tar` 文件形式再传送到目标节点导入即可。例如: ```bash # 在有互联网访问的地方先保存镜像 docker save -o myapp_image.tar myapp:latest # 将myapp_image.tar移动到目标机器后恢复镜像 docker load -i myapp_image.tar ``` 最后一步就是按照常规方式启动容器实例了,假设已经有了定义好的 `docker-compose.yml` 或者简单的 `run` 命令字符串的话就更加方便快捷了。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值