Docker容器实战【一】安装Docker

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 容器,就是一种轻量级的虚拟化技术,目的和虚拟机一样,都是为了创造“隔离环境”。一句话理解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
目录
相关文章
|
17天前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
156 77
|
7天前
|
NoSQL 关系型数据库 应用服务中间件
docker基础篇:安装tomcat
docker基础篇:安装tomcat
111 64
|
3天前
|
存储 Kubernetes 开发者
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
Docker 是一种开源的应用容器引擎,允许开发者将应用程序及其依赖打包成可移植的镜像,并在任何支持 Docker 的平台上运行。其核心概念包括镜像、容器和仓库。镜像是只读的文件系统,容器是镜像的运行实例,仓库用于存储和分发镜像。Kubernetes(k8s)则是容器集群管理系统,提供自动化部署、扩展和维护等功能,支持服务发现、负载均衡、自动伸缩等特性。两者结合使用,可以实现高效的容器化应用管理和运维。Docker 主要用于单主机上的容器管理,而 Kubernetes 则专注于跨多主机的容器编排与调度。尽管 k8s 逐渐减少了对 Docker 作为容器运行时的支持,但 Doc
29 5
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
|
9天前
|
关系型数据库 应用服务中间件 PHP
实战~如何组织一个多容器项目docker-compose
本文介绍了如何使用Docker搭建Nginx、PHP和MySQL的环境。首先启动Nginx容器并查看IP地址,接着启动Alpine容器并安装curl测试连通性。通过`--link`方式或`docker-compose`配置文件实现服务间的通信。最后展示了Nginx配置文件和PHP代码示例,验证了各服务的正常运行。
29 3
实战~如何组织一个多容器项目docker-compose
|
8天前
|
关系型数据库 MySQL 数据库
docker高级篇(大厂进阶):安装mysql主从复制
docker高级篇(大厂进阶):安装mysql主从复制
66 24
|
9天前
|
NoSQL 算法 Redis
docker高级篇(大厂进阶):安装redis集群
docker高级篇(大厂进阶):安装redis集群
61 24
|
8天前
|
Ubuntu Linux Docker
Ubuntu22.04上Docker的安装
通过以上详细的安装步骤和命令,您可以在Ubuntu 22.04系统上顺利安装
94 11
|
3天前
|
Unix Linux Docker
CentOS停更沉寂,RHEL巨变限制源代:Docker容器化技术的兴起助力操作系统新格局
操作系统是计算机系统的核心软件,管理和控制硬件与软件资源,为用户和应用程序提供高效、安全的运行环境。Linux作为开源、跨平台的操作系统,具有高度可定制性、稳定性和安全性,广泛应用于服务器、云计算、物联网等领域。其发展得益于庞大的社区支持,多种发行版如Ubuntu、Debian、Fedora等满足不同需求。
16 4
|
19天前
|
数据建模 应用服务中间件 nginx
docker替换宿主与容器的映射端口和文件路径
通过正确配置 Docker 的端口和文件路径映射,可以有效地管理容器化应用程序,确保其高效运行和数据持久性。在生产环境中,动态替换映射配置有助于灵活应对各种需求变化。以上方法和步骤提供了一种可靠且易于操作的方案,帮助您轻松管理 Docker 容器的端口和路径映射。
60 3
|
25天前
|
监控 Docker 容器
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序