编辑
2024-05-31
项目分享
00
请注意,本文编写于 307 天前,最后修改于 115 天前,其中某些信息可能已经过时。

目录

Docker简介
在线安装
验证
离线安装
下载docker
上传docker安装包
镜像加速
免除输入前缀sudo步骤
创建docker组
加入docker组
可能遇到的问题

Docker简介

Docker 是一个开源的应用容器引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在本地编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。 简单的理解,Docker类似于集装箱,各式各样的货物,经过集装箱的标准化进行托管,而集装箱和集装箱之间没有影响。也就是说,Docker平台就是一个软件集装箱化平台,这就意味着我们自己可以构建应用程序,将其依赖关系一起打包到一个容器中,然后这容器就很容易运送到其他的机器上进行运行,而且非常易于装载、复制、移除,非常适合软件弹性架构。

提示

基于ubuntu 20.04安装

在线安装

#卸载 sudo apt-get remove docker docker-engine docker.io containerd runc #下载 curl -fsSL https://get.docker.com/ | sh #镜像安装 sudo curl -fsSL https://github.com/tech-shrimp/docker_installer/releases/download/latest/linux.sh| bash -s docker --mirror Aliyun sudo curl -fsSL https://gitee.com/tech-shrimp/docker_installer/releases/download/latest/linux.sh| bash -s docker --mirror Aliyun #开机启动 systemctl enable docker # 启动docker服务 systemctl start docker

验证

sudo docker run hello-world

出现Hello from Docker! 表示安装成功

离线安装

下载docker

官方下载地址 选择自己合适的版本

上传docker安装包

创建文件夹

mkdir /opt/app

使用xftp上传到这个文件夹

进入文件夹

cd /opt/app

解压docker包

sudo tar -zxvf docker-26.1.3.tgz

安装docker

将解压出来的docker文件内容拷贝或者移动到 /usr/bin/目录下

sudo cp docker/* /usr/bin/

编写docker.service加入Linux服务当中并开启守护进程。

sudo vim /etc/systemd/system/docker.service

输入:

[Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network-online.target firewalld.service Wants=network-online.target [Service] Type=notify # the default is not to use systemd for cgroups because the delegate issues still # exists and systemd currently does not support the cgroup feature set required # for containers run by docker ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock --selinux-enabled=false --default-ulimit nofile=65536:65536 ExecReload=/bin/kill -s HUP $MAINPID # Having non-zero Limit*s causes performance problems due to accounting overhead # in the kernel. We recommend using cgroups to do container-local accounting. LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity # Uncomment TasksMax if your systemd version supports it. # Only systemd 226 and above support this version. #TasksMax=infinity TimeoutStartSec=0 # set delegate yes so that systemd does not reset the cgroups of docker containers Delegate=yes # kill only the docker process, not all processes in the cgroup KillMode=process # restart the docker process if it exits prematurely Restart=on-failure StartLimitBurst=3 StartLimitInterval=60s [Install] WantedBy=multi-user.target

按esc,输入:qw保存并退出

为docker.service添加文件可执行权限

chmod +x /etc/systemd/system/docker.service

配置成功后,重新加载 daemon 服务

sudo systemctl daemon-reload

为docker设置开机自启动

sudo systemctl enable docker

启动docker

sudo systemctl start docker

镜像加速

编辑daemon.json文件

sudo vi /etc/docker/daemon.json

内容:

bash
{ "registry-mirrors": [ "https://hub.rat.dev", "https://docker.1panel.live", "https://dockerproxy.cn", "https://docker.m.daocloud.io", "https://dockerpull.org" ] }

如果有自己的阿里云容器服务,可以将自己的服务地址写上去

重启docker

sudo systemctl daemon-reload sudo systemctl restart docker

免除输入前缀sudo步骤

创建docker组

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

sudo groupadd docker

加入docker组

sudo usermod -aG docker $USER

重启终端即可不用加sudo

可能遇到的问题

  1. cp docker/* usr/bin 提示cp: 无法创建普通文件“/usr/bin": 文本文件忙 这个原因是因为docker没有删除干净 可以去这个地址看看如何删除

本文作者:Weee

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!