Docker容器实战【一】安装Docker

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 容器,就是一种轻量级的虚拟化技术,目的和虚拟机一样,都是为了创造“隔离环境”。一句话理解Docker:以前各程序都睡大厅,有了Docker后都睡小房子里面

image.png

Docker容器实战【一】安装Docker
Docker容器实战【二】使用Docker初次部署Tomcat
Docker容器实战【三】搭建Docker镜像私服Harbor
Docker容器实战【四】阿里云容器服务
Docker容器实战【五】Dockerfile实战

Docker

Docker容器具有以下三大特点:

  1. 轻量化:一台主机上运行的多个Docker容器可以共享主机操作系统内核;启动迅速,只需占用很少的计算和内存资源。
  2. 标准开放:Docker容器基于开放式标准,能够在所有主流Linux版本、Microsoft Windows以及包括VM、裸机服务器和云在内的任何基础设施上运行。
  3. 安全可靠:Docker赋予应用的隔离性不仅限于彼此隔离,还独立于底层的基础设施。Docker默认提供最强的隔离,因此应用出现问题,也只是单个容器的问题,而不会波及到整台主机。

Docker和虚拟机的区别

  • VM:使用Hypervisor提供虚拟机的运行平台,管理每个VM中操作系统的运行。每个VM都要有自己的操作系统、应用程序和必要的依赖文件等。
  • Docker容器:使用Docker引擎进行调度和隔离,提高了资源利用率,在相同硬件能力下可以运行更多的容器实例;每个容器拥有自己的隔离化用户空间。

Docker名词

容器、镜像、镜像层、容器编排、横向扩展

前置技能

  1. 掌握基础Linux命令,网络基础
  2. 虚拟机搭建或云服务器使用(链接)

Linux环境安装

玩转Linux系统【一】CentOS系统安装

Docker卸载

如果之前安装过Docker需要卸载可以参照如下命令

# 列出当前docker相关的安装包
$ yum list installed|grep docker
containerd.io.x86_64                 1.3.7-3.1.el7                  @docker-ce-stable
docker-ce.x86_64                     3:19.03.13-3.el7               @docker-ce-stable
docker-ce-cli.x86_64                 1:19.03.13-3.el7               @docker-ce-stable

image.png

如果yum被占用,提示Another app is currently holding the yum lock; waiting for it to exit...

则可以使用kill -9 pid 这个占用进程,如下

[root@first64 ~]# yum list installed|grep docker
Existing lock /var/run/yum.pid: another copy is running as pid 21308.
Another app is currently holding the yum lock; waiting for it to exit...
The other application is: PackageKit
Memory : 31 M RSS (455 MB VSZ)
Started: Tue May 3 14:44:32 2022 - 06:29 ago
State : Sleeping, pid: 21308

Exiting on user cancel.

$ kill -9 21308

如果出现BDB2053 Freeing read locks for locker 0x1136: 9370/140057345120064提示

$ yum clean all 即可

# 卸载对应的包
$ yum -y remove containerd.io.x86_64 docker-ce.x86_64 docker-ce-cli.x86_64 

# 删除docker目录
$ rm -rf /var/lib/docker
$ rm -rf /var/lib/containerd

安装

注意:且Docker 要求操作系统必须为64位,且centos内核版本为3.1及以上

  • 查看系统内核

    $ uname -r
    3.10.0-1062.el7.x86_6
    # 我这里高于3.1
    
    # 系统我使用的是CentOS 7
    $ cat /etc/os-release
    NAME="CentOS Linux"
    VERSION="7 (Core)"
    ID="centos"
    ID_LIKE="rhel fedora"
  • 保证yum包是最新

    # 使用root执行,更新到最新
    $ yum update
  • 列出可安装的docker包

    # 列出可以按照的docker包
    $ yum list docker-ce --showduplicates | sort -r
  • 安装(较慢,不推荐)

    • 因为官方下载较慢,这里,我们走阿里云的仓库下载安装

      $ yum install -y yum-utils
      
      $ yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
    • 指定版本安装

      # 这里要指定版本
      $ yum -y install docker-ce-18.09.6-3.el7
    • 直接安装最新版

      $ yum install docker-ce -y
  • 查看当前版本

    $ docker version
    
    Client: Docker Engine - Community
     Version:           20.10.14
     API version:       1.41
     Go version:        go1.16.15
     Git commit:        a224086
     Built:             Thu Mar 24 01:49:57 2022
     OS/Arch:           linux/amd64
     Context:           default
     Experimental:      true
    Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
    # 此处需要重启Docker
  • 不能连接到Docker daemon异常

    装完后使用docker命令后会提示异常
    Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
    需要重启下docker
  • 重启

    $ service docker restart
  • 配置开机启动

    $ systemctl enable docker

镜像仓库

Docker中央仓库戳我

由于中央仓库网络较慢,我们通常使用国内镜像,所以需要给当前Docker进行配置

国内镜像

# 网易 推荐,目前体验下来是最快的
http://hub-mirror.c.163.com
# daocloud
https://hub.daocloud.io
# 清华大学
https://mirrors.tuna.tsinghua.edu.cn/
# Docker中国区官方镜像
https://registry.docker-cn.com
# ustc
https://docker.mirrors.ustc.edu.cn 
# 搜狐
http://mirrors.sohu.com/

# 阿里云 阿里镜像需要登录阿里云控制台获取,每个账号有唯一镜像加速地址
https://cr.console.aliyun.com/

镜像配置

  1. 找到/etc/docker目录下的daemon.json文件进行编辑,输入如下内容

    {
      "registry-mirrors": ["http://hub-mirror.c.163.com"]
    }
  2. 如果没有该文件,可自行创建,也可以使用如下命令

    tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["http://hub-mirror.c.163.com"]
    }
    EOF
  3. 重载配置文件,重启docker

    $ systemctl daemon-reload
    $ systemctl restart docker
目录
相关文章
|
8天前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
32 2
|
5天前
|
运维 Cloud Native 虚拟化
一文吃透云原生 Docker 容器,建议收藏!
本文深入解析云原生Docker容器技术,涵盖容器与Docker的概念、优势、架构设计及应用场景等,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
一文吃透云原生 Docker 容器,建议收藏!
|
6天前
|
缓存 监控 开发者
掌握Docker容器化技术:提升开发效率的利器
在现代软件开发中,Docker容器化技术成为提升开发效率和应用部署灵活性的重要工具。本文介绍Docker的基本概念,并分享Dockerfile最佳实践、容器网络配置、环境变量和秘密管理、容器监控与日志管理、Docker Compose以及CI/CD集成等技巧,帮助开发者更高效地利用Docker。
|
8天前
|
监控 持续交付 Docker
Docker 容器化部署在微服务架构中的应用有哪些?
Docker 容器化部署在微服务架构中的应用有哪些?
|
8天前
|
监控 持续交付 Docker
Docker容器化部署在微服务架构中的应用
Docker容器化部署在微服务架构中的应用
|
8天前
|
安全 持续交付 Docker
微服务架构和 Docker 容器化部署的优点是什么?
微服务架构和 Docker 容器化部署的优点是什么?
|
10天前
|
运维 开发者 Docker
Docker Compose:简化容器化应用的部署与管理
Docker Compose:简化容器化应用的部署与管理
|
10天前
|
NoSQL Redis Docker
【赵渝强老师】使用Docker Compose管理容器
Docker Compose 通过 YAML 文件管理多个容器,简化复杂系统的部署和管理。本文介绍了 Docker Compose 的基本概念,并通过一个包含 Redis DB 和 Python Web 模块的示例,展示了如何使用 Docker Compose 部署和管理多容器应用。手动部署和 Docker Compose 部署的对比突显了 Docker Compose 在系统复杂度增加时的优势。
|
18天前
|
Kubernetes 监控 开发者
掌握容器化:Docker与Kubernetes的最佳实践
【10月更文挑战第26天】本文深入探讨了Docker和Kubernetes的最佳实践,涵盖Dockerfile优化、数据卷管理、网络配置、Pod设计、服务发现与负载均衡、声明式更新等内容。同时介绍了容器化现有应用、自动化部署、监控与日志等开发技巧,以及Docker Compose和Helm等实用工具。旨在帮助开发者提高开发效率和系统稳定性,构建现代、高效、可扩展的应用。
|
14天前
|
关系型数据库 MySQL API