docker安装

一、Docker概述

        官网:https://www.docker.com/

         docker仓库:https://hub.docker.com/

        1.1 为什么使用docker?

  •         启动更快

  •         快速创建、删除

  •         保证环境的一致

  •         ......

    1.2 为什么docker更快?

    传统的虚拟机技术基于安装在宿主机上的虚拟机管理系统(如:VirtualBox和VMWare),创建出虚拟机(虚拟出各种硬件),然后基于一个操作系统的镜像文件,在虚拟机上安装操作系统,再在安装好的虚拟机上安装部署各种应用。

        冷暖自知一抹茶ck

        容器技术基于宿主机的内核,不需要虚拟出一套硬件。

        冷暖自知一抹茶ck

        1.3 docker的三个基本概念

        镜像 ------- 模板,类似java类

        容器 ------- 基于模板产生的实例,类似java对象

        仓库 ------- 存放镜像的仓库,类似maven

        docker仓库:https://hub.docker.com/ 

        冷暖自知一抹茶ck

        1.4 docker的工作流程

  1.         docker pull:从镜像仓库拉取镜像 

  2.         docker run:运行本地镜像,产生容器;如果本地没有对应的镜像,则从仓库拉取下来后,再运行镜像 

  3.         docker build:将本地应用构建为镜像文件 

  4.         docker push:将本地镜像文件推送到镜像仓库

        冷暖自知一抹茶ck


二、docker安装

        https://docs.docker.com/get-docker/ 



1)、window安装Docker

        访问下面地址,根据你的需要下载安装docker运行环境。

        https://www.docker.com/

        如果你是Windows、macOS(Intel/M1)、Linux桌面OS,都可以下载到对应版本进行安装,相对命令行方式,更加简单方便。  安装完成后,运行docker desktop,显示如下界面:

        冷暖自知一抹茶ck

        在任务栏中会显示docker的logo,这里以windows为例。

        冷暖自知一抹茶ck

        使用Windows系统下PowerShell或MacOS下终端.app,在命令行输入 docker -v,

        如果docker运行环境安装成功,将显示当前Docker的版本号。

C:\Users\2023020701>docker -v
Docker version 20.10.23, build 7155243

        

2)、基于阿里云服务(CentOS)安装Docker

        

一、准备工作

1.确定当前Linux版本为CentOS

[root@localhost ~]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

2.查看内核版本, 最好为3.10版本以上

[root@localhost ~]# uname -r
3.10.0-1160.102.1.el7.x86_64

二、开始安装Docker

1、更新yum源及卸载旧版本

[root@localhost ~]# yum update -y
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.huaweicloud.com
No packages marked for update
[root@localhost ~]# yum remove docker \
>                   docker-client \
>                   docker-client-latest \
>                   docker-common \
>                   docker-latest \
>                   docker-latest-logrotate \
>                   docker-logrotate \
>                   docker-engine
已加载插件:fastestmirror, langpacks
参数 docker 没有匹配
参数 docker-client 没有匹配
参数 docker-client-latest 没有匹配
参数 docker-common 没有匹配
参数 docker-latest 没有匹配
参数 docker-latest-logrotate 没有匹配
参数 docker-logrotate 没有匹配
参数 docker-engine 没有匹配
不删除任何软件包
[root@localhost ~]#

冷暖自知一抹茶ck

2、安装需要的软件包

安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.huaweicloud.com
软件包 yum-utils-1.1.31-54.el7_8.noarch 已安装并且是最新版本
软件包 device-mapper-persistent-data-0.8.5-3.el7_9.2.x86_64 已安装并且是最新版本
软件包 7:lvm2-2.02.187-6.el7_9.5.x86_64 已安装并且是最新版本
无须任何处理
[root@localhost ~]#

安装软件包时如果出现如下错误

Errors during downloading metadata for repository 'appstream':
  - Status code: 404 for http://mirrors.cloud.aliyuncs.com/centos/8/AppStream/x86_64/os/repodata/repomd.xml (IP: 100.100.2.148)
Error: Failed to download metadata for repo 'appstream': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried

跳转解决问题:
https://blog.csdn.net/weixin_46244732/article/details/124930113

3、配置阿里云镜像仓库

#使用国内阿里云
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

[root@localhost ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
已加载插件:fastestmirror, langpacks
adding repo from: http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
grabbing file http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo

4、更新yum软件包索引

[root@localhost ~]# yum makecache fast        #(centos8 没有fast参数,去掉即可)
[root@localhost ~]# yum makecache

冷暖自知一抹茶ck

5、安装Docker CE

#ce是社区版(免费版),ee是企业版(收费版)
[root@localhost ~]# yum install docker-ce docker-ce-cli containerd.io

冷暖自知一抹茶ck

6、启动并加入开机启动

[root@localhost ~]# systemctl start docker
[root@localhost ~]# systemctl enable docker

7、测试命令

验证安装是否成功(有client和service两部分表示docker安装启动都成功了)

[root@localhost ~]# docker version            #查看版本信息,是否安装成功
Client: Docker Engine - Community
 Version:           24.0.7
 API version:       1.43
 Go version:        go1.20.10
 Git commit:        afdd53b
 Built:             Thu Oct 26 09:11:35 2023
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          24.0.7
  API version:      1.43 (minimum version 1.12)
  Go version:       go1.20.10
  Git commit:       311b9ff
  Built:            Thu Oct 26 09:10:36 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.24
  GitCommit:        61f9fd88f79f081d64d6fa3bb1a0dc71ec870523
 runc:
  Version:          1.1.9
  GitCommit:        v1.1.9-0-gccaecfc
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
[root@localhost ~]#

冷暖自知一抹茶ck

8、运行hello world

[root@localhost ~]# docker run hello-world

冷暖自知一抹茶ck

9、查看下载的镜像

[root@localhost ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    9c7a54a9a43c   5 months ago   13.3kB

10、常用Docker命令

docker ps 查看当前正在运行的容器
docker ps -a 查看所有容器的状态
docker start/stop id/name 启动/停止某个容器
docker attach id 进入某个容器(使用exit退出后容器也跟着停止运行)
docker exec -it id 启动一个 伪终端以交互式的方式进入某个容器(使用exit退出后容器不停止运行)
docker images 查看本地镜像
docker rm id/name 删除某个容器
docker rmi id/name 删除某个镜像
docker stop $(docker ps -a -q) 停止所有容器
docker rm $(docker ps -a -q) 删除所有容器
systemctl start docker && systemctl enable docker 启动docker并设置开机自启动
systemctl restart docker 重启docker
yum remove docker-ce docker-ce-selinux container-selinux docker docker-ce-cli -y docker卸载(仅仅卸载yum remove掉docker-ce是不行的,我们必须连同他的组件一起卸载掉,这样才方便下一次的安装,注:这是copy别的文章的,本人没有实际使用过)

三、Docker 镜像加速器

国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docker 官方和国内很多云服务商都提供了国内加速器服务,例如:

  • Docker 官方提供的中国 registry mirror

  • 阿里云加速器

  • DaoCloud 加速器

我们以Docker阿里云加速器为例进行介绍。
首先登录阿里云(没有账号请先注册),搜索 容器镜像服务,找到你的专属加速器地址。

阿里云镜像加速

【需购买了阿里云服务器才可以使用】

1、登录阿里云找到容器镜像服务

冷暖自知一抹茶ck


2、选择镜像加速器

冷暖自知一抹茶ck

3、配置使用

# 分步执行即可
sudo mkdir -p /etc/docker

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

sudo systemctl daemon-reload

sudo systemctl restart docker

2.1 Ubuntu 14.04、Debian 7 Wheezy

对于使用 upstart 的系统而言,编辑 /etc/default/docker 文件,在其中的 DOCKER_OPTS 中配置加速器地址:

DOCKER\_OPTS="--registry-mirror=https\://xxxxxxxx.mirror.aliyuncs.com"

重新启动服务。

sudo service docker restart

2.2 Ubuntu 16.04+、Debian 8+、CentOS 7

对于使用 systemd 的系统,请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)

{ 
    "registry-mirrors": [    
        "https://xxxxxxxx.mirror.aliyuncs.com"  
    ]
}

注意,一定要保证该文件符合 json 规范,否则 Docker 将不能启动。
之后重新启动服务。

sudo systemctl daemon-reload
sudo systemctl restart docker

2.3 Windows 10

对于使用 Windows 10 的系统,在系统右下角托盘 Docker 图标内右键菜单选择 Settings ,打开配置窗口后左侧导航菜单选择 Daemon 。在 Registry mirrors 一栏中填写加速器地址 https://registry.docker-cn.com ,之后点击 Apply 保存后 Docker 就会重启并应用配置的镜像地址了。

2.4 macOS

对于使用 macOS 的用户,在任务栏点击 Docker for mac 应用图标 -> Perferences... -> Daemon -> Registry mirrors。在列表中填写加速器地址 https://registry.docker-cn.com 。修改完成之后,点击 Apply & Restart 按钮,Docker 就会重启并应用配置的镜像地址了。

2.5 检查加速器是否生效

配置加速器之后,如果拉取镜像仍然十分缓慢,请手动检查加速器配置是否生效,在命令行执行 docker info ,如果从结果中看到了如下内容,说明配置成功。

Registry Mirrors: 
  https://xxxxxxxx.mirror.aliyuncs.com

四、Docker 镜像

1 获取镜像

$ docker pull ubuntu:16.04

2 运行

有了镜像后,我们就能够以这个镜像为基础启动并运行一个容器。以上面的 ubuntu:16.04 为例,如果我们打算启动里面的 bash 并且进行交互式操作的话,可以执行下面的命令。

$ docker run -it --rm \
    ubuntu:16.04 \
    bash

root@e7009c6ce357:/# cat /etc/os-release
NAME="Ubuntu"
VERSION="16.04.4 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.4 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"

docker run 就是运行容器的命令,我们这里简要的说明一下上面用到的参数。

  • it :这是两个参数,一个是 -i :交互式操作,一个是 -t 终端。我们这里打算进入 bash 执行一些命令并查看返回结果,因此我们需要交互式终端。

  • --rm :这个参数是说容器退出后随之将其删除。默认情况下,为了排障需求,退出的容器并不会立即删除,除非手动 docker rm 。我们这里只是随便执行个命令,看看结果,不需要排障和保留结果,因此使用 --rm 可以避免浪费空间。

  • ubuntu:16.04 :这是指用 ubuntu:16.04 镜像为基础来启动容器。

  • bash :放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 bash。

进入容器后,我们可以在 Shell 下操作,执行任何所需的命令。这里,我们执行了 cat /etc/os-release ,这是 Linux 常用的查看当前系统版本的命令,从返回的结果可以看到容器内是 Ubuntu 16.04.4 LTS 系统。

最后们通过 exit 或者 Ctrl + D 退出了这个容器。

3 列出镜像

要想列出已经下载下来的镜像,可以使用 docker image ls 命令。

$ docker image ls
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
redis                latest              5f515359c7f8        5 days ago          183 MB
nginx                latest              05a60462f8ba        5 days ago          181 MB
mongo                3.2                 fe9198c04d62        5 days ago          342 MB
<none>               <none>              00285df0df87        5 days ago          342 MB
ubuntu               16.04               f753707788c5        4 weeks ago         127 MB
ubuntu               latest              f753707788c5        4 weeks ago         127 MB
ubuntu               14.04               1e0c3dd64ccd        4 weeks ago

列表包含了 仓库名 、标签 、镜像 ID 、创建时间 、以及 所占用的空间。

其中仓库名、标签在之前的基础概念已经介绍过了。镜像 ID 则是镜像的唯一标识,一个镜像可以对应多个标签。因此,在上面的例子中,我们可以看到 ubuntu:16.04 和 ubuntu 拥有相同的 ID,因为它们对应的是同一个镜像。

4 删除本地镜像

如果想要删除本地的镜像,可以使用 docker image rm 命令,其格式为:

$ docker image ls
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
centos                      latest              0584b3d2cf6d        3 weeks ago         196.5 MB
redis                       alpine              501ad78535f0        3 weeks ago         21.03 MB
docker                      latest              cf693ec9b5c7        3 weeks ago         105.1 MB
nginx                       latest              e43d811ce2f4        5 weeks ago         181.5 MB


$ docker image rm 501

$ docker image rm centos

五、卸载Docker

# 1、先停止Docker
systemctl stop docker
# 2、卸载依赖
yum -y remove docker-ce docker-ce-cli containerd.io
# 3、删除资源
rm -rf /var/lib/docker

# /var/lib/docker  是docker的默认工作路径

六、安装错误

安装错误:https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found

解决:

cd /etc/yum.repos.d
ls

冷暖自知一抹茶ck

删除docker相关的repo文件,再次yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo即可



3)、Ubantu安装Docker搭建WEB环境

Connecting to 192.168.181.136:22...
Could not connect to '192.168.181.136' (port 22): Connection failed.
需要 deepin 激活root用户和开启ssh服务https://1epkd872dv.k.topthink.com/@94217gl2gb/VMwarexunijiruheanzhuangDeepinshenduxitong.html

1、更新Ubuntu的apt源

root@kkk-PC:~# sudo apt-get update

2、安装包允许apt通过HTTPS使用仓库

root@kkk-PC:~# sudo dpkg --configure -a
root@kkk-PC:~# sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

3、添加Docker官方GPG key

root@kkk-PC:~# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

4、设置Docker稳定版仓库

root@kkk-PC:~# sudo add-apt-repository "deb [arch=arm64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

[arch=arm64] 注意系统的平台选择

5、更新apt源

root@kkk-PC:~# sudo apt-get update

6、安装最新版本Docekr CE(社区版)

root@kkk-PC:~# sudo apt-get install docker-ce

7、查看安装Docker的版本

root@kkk-PC:~# docker --version

8、检查Docker CE是否安装正确

root@kkk-PC:~# sudo docker run hello-world

9、更新为国内源

root@kkk-PC:~# sudo vim /etc/docker/daemon.json

写入以下文本

{
        "registry-mirrors": [
                "https://registry.docker-cn.com",
                "https://hub-mirror.c.163.com/"
        ]
}

10、重启docker

root@kkk-PC:~# sudo systemctl restart docker





        参考:

                Docker安装教程

                Docker搭建WEB环境之 Nginx & uWSGI 

                Docker搭建WEB环境之 Nginx & PHP

                


冷暖自知一抹茶ck
请先登录后发表评论
  • 最新评论
  • 总共0条评论