当前位置:   article > 正文

Linux安装Docker_如何安装docker linux redhat

如何安装docker linux redhat

一、Docker系统版本介绍

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 或 Windows 操作系统的机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口 (没有 API)。独立的进程运行在每个容器中,并拥有自己的网络和 IP 地址。容器可以在任何机器上运行,无论宿主机的操作系统和配置如何。

Docker版本分为CE社区版和EE企业版。企业版强调安全性,需付费使用。Docker支持64位版本的CentOS 7和CentOS 8及更高版本,要求Linux内核版本不低于3.10。


查看Linux版本

  • lsb_release -a
  • cat /etc/redhat-release

注意:如果系统不支持  lsb_release -a 命令,可使用 cat /etc/redhat-release 命令。

云服务器

本机


 查看Linux内核版本:

  • cat /proc/version
  • uname -a
  • uname -r

满足(要求Linux内核版本不低于3.10)

 二、安装Docker

2.1、在线安装

  • 查看是否安装docker
yum list installed | grep docker
  • 安装docker
yum -y install docker
  • Linux 安装默认存放位置
  1. cd /var/lib/docker 默认安装路径,容器/镜像存放在此目录下。
  2. 镜像位置: /var/lib/docker/image
  3. 容器位置: /var/lib/docker/containers
  • 启动docker 
systemctl start docker
  • 停止docker
systemctl stop docker
  • 重启docker 
systemctl restart docker
  • 查看docker服务状态
systemctl status docker

2.2、离线安装

  • 创建下载目录
  1. mkdir /usr/local/docker
  2. cd /usr/local/docker
wget https://download.docker.com/linux/static/stable/x86_64/docker-18.03.0-ce.tgz
  • 解压文件
tar -zxvf docker-18.03.0-ce.tgz
  •  解压出来的docker文件复制到 /usr/bin/ 目录下
cp docker/* /usr/bin/
  • 在/etc/systemd/system/目录下新增docker.service文件,这样可以将docker注册为service服务以方便开机启动
vi /etc/systemd/system/docker.service
  1. [Unit]
  2. Description=Docker Application Container Engine
  3. Documentation=https://docs.docker.com
  4. After=network-online.target firewalld.service
  5. Wants=network-online.target
  6. [Service]
  7. Type=notify
  8. # the default is not to use systemd for cgroups because the delegate issues still
  9. # exists and systemd currently does not support the cgroup feature set required
  10. # for containers run by docker
  11. ExecStart=/usr/bin/dockerd --selinux-enabled=false --insecure-registry=127.0.0.1
  12. ExecReload=/bin/kill -s HUP $MAINPID
  13. # Having non-zero Limit*s causes performance problems due to accounting overhead
  14. # in the kernel. We recommend using cgroups to do container-local accounting.
  15. LimitNOFILE=infinity
  16. LimitNPROC=infinity
  17. LimitCORE=infinity
  18. # Uncomment TasksMax if your systemd version supports it.
  19. # Only systemd 226 and above support this version.
  20. #TasksMax=infinity
  21. TimeoutStartSec=0
  22. # set delegate yes so that systemd does not reset the cgroups of docker containers
  23. Delegate=yes
  24. # kill only the docker process, not all processes in the cgroup
  25. KillMode=process
  26. # restart the docker process if it exits prematurely
  27. Restart=on-failure
  28. StartLimitBurst=3
  29. StartLimitInterval=60s
  30. [Install]
  31. WantedBy=multi-user.target
  • 给docker.service文件添加执行权限  (如果文件没有执行权限,系统可能无法正确加载和启动 Docker 服务)
chmod +x /etc/systemd/system/docker.service
  • 重新加载配置文件
systemctl daemon-reload
  • 启动docker
systemctl start docker
  • 查看docker服务状态
systemctl status docker
  • 停止docker
systemctl stop docker

三、配置镜像加速器

为什么配置加速器?

使用阿里云镜像加速器可以加速Docker的镜像拉取过程。Docker通常需要从Docker官网拉取镜像,但是官网的镜像库在国外,导致下载速度较慢。阿里云镜像加速器可以将Docker官方镜像拉取到国内的阿里云镜像库中,从而加速拉取过程。即使阿里云镜像库中没有所需的镜像,也可以使用阿里云镜像加速器来加速从Docker Hub的拉取。

查看docker 版本 docker -v

阿里云:https://cr.console.aliyun.com/cn-beijing/instances/mirrors

注意:登录阿里云账号,查看自己的镜像加速器 

  1. # 进入一下目录
  2. [root@xiaojian /]# cd /etc/docker
  3. # 执行脚本,将JSON串反写到daemon.jsonn文件中
  4. [root@xiaojian docker]# sudo tee /etc/docker/daemon.json <<-'EOF'
  5. {
  6. "registry-mirrors": ["https://qil6pc2r.mirror.aliyuncs.com"]
  7. }
  8. EOF
  9. # 重新加载配置 (重新加载 systemd 守护进程。当你修改了 systemd 的服务文件时,这个命令会让 systemd 重新加载配置,使新的服务配置生效。)
  10. [root@xiaojian docker]# sudo systemctl daemon-reload
  11. # 重启docker
  12. [root@xiaojian docker]# sudo systemctl restart docker

四、Docker Registry 安装

  • 查看registry 的镜像版本
  1. [root@xiaojian system]# docker search registry
  2. NAME DESCRIPTION STARS OFFICIAL AUTOMATED
  3. registry The Docker Registry 2.0 implementation for s… 3867 [OK]
  4. verdaccio/verdaccio Verdaccio Official Docker Image: A lightweig… 186 [OK]
  5. distribution/registry WARNING: NOT the registry official image!!! … 57 [OK]
  6. google/docker-registry Docker Registry w/ Google Cloud Storage driv… 55
  7. apache/nifi-registry Unofficial convenience binaries for Apache N… 42
  8. docker/dtr Docker Trusted Registry 15
  9. docker/migrator Tool to migrate Docker images from a v1 regi… 8 [OK]
  10. vmware/registry 6
  11. snyk/container-registry-agent Container registry agent allows securely con… 2
  12. silintl/registry-proxy A reverse proxy for the Docker Registry 2.0 1 [OK]
  13. vmware/registry-photon 0
  14. drud/registry 0
  15. hephy/registry Docker image registry for the Hephy - Fork o… 0
  16. runcitadel/registry-photon 0
  17. okteto/registry-auth 0
  18. kope/registry 0
  19. reseaucerta/registry 0
  20. opensuse/registry Docker registry based on openSUSE. 0 [OK]
  21. hephy/registry-proxy 0
  22. bitnami/schema-registry Bitnami Docker Image for Schema Registry 0
  23. astronomerinc/ap-registry Docker registry for the Astronomer Platform. 0
  24. okteto/registry-configurator 0
  25. okteto/registry 0
  26. docker/trusted-registry-index Search Index for Docker Trusted Registry 0
  27. hephy/registry-token-refresher 0
  28. [root@xiaojian system]#
  •  下载registry 镜像
docker pull registry
  •  创建一个本地目录,用于映射本地目录到docker里
mkdir -p /usr/local/docker/dockerhub/
  •  启动registry镜像
docker run -d -v /usr/local/docker/dockerhub:/var/lib/registry -p 5000:5000 --restart=always --name dockerhub-registry2.0 registry

用于运行一个Docker Registry容器并将 /usr/local/docker/dockerhub 目录映射到容器的 /var/lib/registry 目录

  1. -d 选项表示在后台运行容器。
  2. -v /usr/local/docker/dockerhub:/var/lib/registry 选项将主机上的 /usr/local/docker/dockerhub 目录映射到容器内的 /var/lib/registry 目录,使得容器内的数据持久化到主机上。
  3. -p 5000:5000 选项将容器的端口 5000 映射到主机的端口 5000,使得外部可以通过主机的端口 5000 来访问容器内的Docker Registry服务。
  4. --restart=always 选项表示容器退出后自动重启。
  5. --name dockerhub-registry2.0 为容器指定一个名称,方便后续管理和访问。
  6. registry 是Docker官方提供的Registry镜像名称。

通过这个命令,您可以在本地主机上运行一个名为 dockerhub-registry2.0 的Docker Registry容器,并将 /usr/local/docker/dockerhub 目录作为存储目录。 

  • 查看registry是否启动成功
curl http://127.0.0.1:5000/v2
  •  命令查看Docker Registry容器是否已成功启动
docker ps -a

  • 补充 

--insecure-registry 是一个Docker daemon的选项,用于允许Docker从指定的不安全的注册表(insecure registry)拉取和推送镜像,即使该注册表没有进行TLS认证或者使用了自签名证书。

如果你在自己的局域网内部搭建了Harbor私有仓库,并且希望Docker从该仓库拉取和推送镜像,那么你需要在Docker daemon配置文件中(通常是/etc/docker/daemon.json)添加以下内容:

  1. {
  2. "insecure-registries": ["你的私服IP"]
  3. }

替换 "你的私服IP" 为你的Harbor私有仓库的IP地址或者域名。

需要注意的是,由于这会绕过TLS认证和证书检查,所以这种做法只应该在Harbor私有仓库是在你完全信任的网络内部,并且能够保证通信的安全性时使用。在生产环境中,应该尽量避免使用不安全的注册表。

五、验证docker

  • 拉取镜像
docker pull hello-world
  • 列出所有镜像
docker images
  • 运行镜像
docker run hello-world

六、设置开机自启

  • 查看所有已启动的服务
systemctl list-units --type=service
  • 查看已设置的开机启动服务
systemctl list-unit-files | grep enable
  •  设置开机自启
systemctl enable docker.service
  •  关闭开机自启
systemctl disable docker.service

七、卸载docker

  • 检查docker状态
systemctl status docker
  •  停止docker运行
systemctl stop docker
  •  卸载 Docker 软件包
  1. yum remove docker \
  2. docker-client \
  3. docker-client-latest \
  4. docker-common \
  5. docker-latest \
  6. docker-latest-logrotate \
  7. docker-logrotate \
  8. docker-selinux \
  9. docker-engine-selinux \
  10. docker-engine \
  11. docker-ce
  • 删除 Docker 相关文件和目录
sudo rm -rf /var/lib/docker
  • 删除 Docker 用户和组
sudo userdel -r docker
  • 删除 Docker 配置文件
sudo rm -rf /etc/docker

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/47470?site
推荐阅读
相关标签
  

闽ICP备14008679号