Docker容器实战【一】安装Docker

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 容器,就是一种轻量级的虚拟化技术,目的和虚拟机一样,都是为了创造“隔离环境”。一句话理解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
目录
相关文章
|
7天前
|
运维 Cloud Native 虚拟化
一文吃透云原生 Docker 容器,建议收藏!
本文深入解析云原生Docker容器技术,涵盖容器与Docker的概念、优势、架构设计及应用场景等,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
一文吃透云原生 Docker 容器,建议收藏!
|
3天前
|
运维 Cloud Native 云计算
云原生之旅:Docker容器化实战
本文将带你走进云原生的世界,深入理解Docker技术如何改变应用部署与运维。我们将通过实际案例,展示如何利用Docker简化开发流程,提升应用的可移植性和伸缩性。文章不仅介绍基础概念,还提供操作指南和最佳实践,帮助你快速上手Docker,开启云原生的第一步。
|
1天前
|
关系型数据库 MySQL Java
【Docker最新版教程】一文带你快速入门Docker常见用法,实现容器编排和自动化部署上线项目
Docker快速入门到项目部署,MySQL部署+Nginx部署+docker自定义镜像+docker网络+DockerCompose项目实战一文搞定!
|
5天前
|
运维 持续交付 虚拟化
深入解析Docker容器化技术的核心原理
深入解析Docker容器化技术的核心原理
22 1
|
7天前
|
机器学习/深度学习 数据采集 Docker
Docker容器化实战:构建并部署一个简单的Web应用
Docker容器化实战:构建并部署一个简单的Web应用
|
7天前
|
JavaScript 开发者 Docker
Docker容器化实战:构建并部署一个简单的Web应用
Docker容器化实战:构建并部署一个简单的Web应用
|
7天前
|
持续交付 开发者 Docker
Docker容器化技术实战指南
Docker容器化技术实战指南
23 1
|
7天前
|
安全 Docker 微服务
深入理解Docker容器技术:从基础到实践
深入理解Docker容器技术:从基础到实践
|
8天前
|
缓存 监控 开发者
掌握Docker容器化技术:提升开发效率的利器
在现代软件开发中,Docker容器化技术成为提升开发效率和应用部署灵活性的重要工具。本文介绍Docker的基本概念,并分享Dockerfile最佳实践、容器网络配置、环境变量和秘密管理、容器监控与日志管理、Docker Compose以及CI/CD集成等技巧,帮助开发者更高效地利用Docker。
|
1天前
|
开发者 Docker Python
从零开始:使用Docker容器化你的Python Web应用
从零开始:使用Docker容器化你的Python Web应用
6 1
下一篇
无影云桌面