linux安装docker-ce

  • Post author:
  • Post category:linux

在这里插入图片描述

脚本快速安装docker

官方提供了安装脚本来快速安装最新版本docker-ce:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
systemctl enable --now docker
docker version

参考:
https://github.com/docker/docker-install
https://docs.docker.com/engine/install/centos/#install-using-the-convenience-script

官方安装Docker-CE

官方安装参考:https://docs.docker.com/engine/installation/

安装环境:

  • 操作系统:CentOS7
  • Docker版本:Docker-CE最新版本

如果安装较旧版本docker,执行以下命令直接安装即可:

yum install -y docker
systemctl enable --now docker

以下是按照官方文档安装最新版本docker的方法:

安装必要的依赖包:

yum install -y yum-utils device-mapper-persistent-data lvm2

配置Docker yum源:

这里使用国内阿里云Yum源:

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

也可以配置官方yum源:

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装Docker-CE:

yum install -y docker-ce docker-ce-cli containerd.io

查看docker版本,确认安装成功

$ docker --version
Docker version 18.09.0, build 4d60db4

启动Docker服务并设为开机启动

$ systemctl enable --now docker

#确认docker服务运行正常,显示active (running)说明服务正常运行
$ systemctl status docker

运行容器测试

#运行容器
docker run -d --name nginx-app -p 80:80 --restart always nginx

#查看容器运行状态
# docker ps -a

#启动和重启
docker start/stop/restart nginx

#删除和强制删除
docker rm nginx
docker rm -f nginx

#拉取和查看镜像
docker pull nginx
docker images

#删除镜像
docker rmi nginx

浏览器能够成功访问 http://<本机ip>:80说明运行正常。

安装Docker-CE指定版本(可选)

列出可用版本,然后选择并安装:

[root@host2 ~]# yum list docker-ce --showduplicates | sort -r
......
docker-ce.x86_64            3:18.09.0-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:18.09.0-3.el7                    @docker-ce-stable
docker-ce.x86_64            18.06.1.ce-3.el7                   docker-ce-stable 
docker-ce.x86_64            18.06.0.ce-3.el7                   docker-ce-stable 
docker-ce.x86_64            18.03.1.ce-1.el7.centos            docker-ce-stable 
docker-ce.x86_64            18.03.0.ce-1.el7.centos            docker-ce-stable 
docker-ce.x86_64            17.12.1.ce-1.el7.centos            docker-ce-stable 
......
[root@host2 ~]# 

#以安装18.06版本为例
[root@host2 ~]# yum install docker-ce-18.06.1.ce-3.el7  

配置国内镜像加速(可选)

鉴于国内网络问题,后续拉取 Docker 镜像比较慢,建议安装 Docker 之后配置国内镜像加速。

阿里云镜像加速

tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://uyah70su.mirror.aliyuncs.com"]
}
EOF

Azure 中国镜像加速

{
  "registry-mirrors": ["https://dockerhub.azk8s.cn"],
}

清华源镜像加速

{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

daocloud镜像加速

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io

配置完成后重启docker服务

systemctl daemon-reload && systemctl restart docker

检查加速配置是否生效
执行 $ docker info,如果从结果中看到了如下内容,说明配置成功。

$ docker info | grep Mirrors -A1
Registry Mirrors:
 https://uyah70su.mirror.aliyuncs.com/

测试镜像拉取速度

$ time docker pull centos

centos8安装docker-ce

#配置阿里云yum源
dnf config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#安装containerd.io
dnf install -y https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.13-3.1.el7.x86_64.rpm

#安装docker-ce
dnf install -y docker-ce

#配置docker镜像加速
mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": ["https://uyah70su.mirror.aliyuncs.com"]
}
EOF

#启动docker服务
systemctl enable --now docker

非root用户安装docker

rootless模式是在 Docker Engine v19.03 中作为实验性功能引入的,从 Docker Engine v20.10 的实验中毕业。

参考:https://docs.docker.com/engine/security/rootless/

前提条件

# centos
dnf install -y fuse-overlayfs iptables

# ubuntu
apt-get install -y dbus-user-session uidmap

安装docker

# centos
dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
dnf install -y docker-ce-rootless-extras

# ubuntu
apt-get update
apt-get install -y ca-certificates curl gnupg lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get install -y docker-ce docker-ce-cli containerd.io
systemctl disable --now docker

创建普通用户

useradd -m -s /bin/bash test

切换到普通用户

su - test
loginctl enable-linger $(whoami)

cat >>$HOME/.bashrc<<'EOF'
export XDG_RUNTIME_DIR=/run/user/$(id -u)
EOF
source $HOME/.bashrc

以普通用户身份启动docker服务

dockerd-rootless-setuptool.sh install

或使用脚本方式,不需要执行前面安装docker步骤

curl -fsSL https://get.docker.com/rootless | sh

查看docker服务运行状态

[centos@localhost ~]$ systemctl --user status docker
● docker.service - Docker Application Container Engine (Rootless)
   Loaded: loaded (/home/centos/.config/systemd/user/docker.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2022-03-12 11:57:15 CST; 5min ago
     Docs: https://docs.docker.com/go/rootless/
 Main PID: 2521 (rootlesskit)
   CGroup: /user.slice/user-1000.slice/user@1000.service/docker.service
           ├─2521 rootlesskit --net=vpnkit --mtu=1500 --slirp4netns-sandbox=auto --slirp4netns-seccomp=auto --disable-host-loopback --port-driver=builtin --copy-up=/etc --copy-up=/run --propagation=rslave /hom>
           ├─2528 /proc/self/exe --net=vpnkit --mtu=1500 --slirp4netns-sandbox=auto --slirp4netns-seccomp=auto --disable-host-loopback --port-driver=builtin --copy-up=/etc --copy-up=/run --propagation=rslave />
           ├─2537 vpnkit --ethernet /tmp/rootlesskit069237167/vpnkit-ethernet.sock --mtu 1500 --host-ip 0.0.0.0
           ├─2553 dockerd
           └─2568 containerd --config /run/user/1000/docker/containerd/containerd.toml --log-level info
lines 1-11/11 (END)

使用docker运行容器

cat >>$HOME/.bashrc<<'EOF'
export PATH=/usr/bin:$PATH
export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/docker.sock
EOF
source $HOME/.bashrc

docker run -d -p 8080:80 nginx

版权声明:本文为networken原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。