docker安装及基本操作、进阶操作

文章目录

  • **Docker知识介绍**
      • **Docker基础知识**
        • **1.什么是Docker?**
        • **2.Docker的基本概念和工作原理**
        • 3.容器之间的通信和交互
        • **4.容器性能的监控和优化**
        • **5.容器安全性的管理和防护**
        • 6.docker为什么要用容器
      • **Linux基础知识**
        • **1.操作系统的基础知识**
        • **2.常用Linux发行版和特点**
  • **安装Docker及基础操作**
      • **1.CentOS安装Docker**
        • 1.1.卸载(可选)
        • 1.2.安装docker
        • 1.3.启动docker
        • 1.4.配置镜像加速
      • **2.常用Docker镜像命令行的使用方法**
      • 3.Docker容器相关的命令行命令包括:
  • Docker进阶操作
      • 1.数据卷挂载
      • 2.自定义镜像
      • 3.DockerCompose
        • 3.1.下载
        • 3.2.修改文件权限
        • 3.3.Base自动补全命令:
      • 4.Docker镜像仓库
        • 4.1.简化版镜像仓库
        • 4.2.带有图形化界面版本
        • 4.3.配置Docker信任地址
  • 常见问题报错
      • 执行 `docker-compose up -d` 命令后没有任何响应
      • "Failed to start docker-compose.service: Unit not found"

Docker知识介绍

Docker是一种开源的容器化技术,它使得应用程序及其所有依赖项能够在轻量级、可移植的容器中运行。Linux是Docker的主要运行环境之一,本学习笔记将介绍Docker和Linux的基础知识,以及如何使用Docker在Linux环境中构建、部署和管理应用程序。

Docker基础知识

1.什么是Docker?

Docker是一种容器化技术,它允许开发者将应用程序以及所有依赖项打包在一个独立的、可移植的容器中。容器与主机操作系统隔离开来,但共享相同的内核。这意味着容器可以在不同的Linux发行版上运行,而无需重新配置应用程序或重新安装依赖项。

2.Docker的基本概念和工作原理

Docker主要包括镜像(Image)、容器(Container)和仓库(Repository)三个基本概念。镜像是一个只读模板,用于创建容器。容器是从镜像创建的运行实例,可以用来运行和停止应用程序。仓库是用于存储和共享镜像的地方。

Docker的工作原理是“分步式”的,它将应用程序及其依赖项分成独立的步骤,每个步骤都在一个容器中运行。这种分步式模型使得应用程序更容易部署、扩展和管理。

3.容器之间的通信和交互

在多个容器之间进行通信时,可以使用Docker的网络模式来实现。Docker提供了多种网络模式,包括bridge、host、container和none等。通过使用适当的网络模式,可以确保容器之间能够正确地进行通信和交互。

4.容器性能的监控和优化

使用Docker时,监控容器的性能并对其进行优化非常重要。可以使用一些工具和技术来监控容器的性能,例如使用docker stats命令来查看容器的实时统计信息,使用性能分析工具来检测性能瓶颈。为了优化容器的性能,可以采取一些措施,例如优化镜像的大小、限制容器的CPU和内存使用等。

5.容器安全性的管理和防护

容器的安全性是使用Docker时需要考虑的重要问题。为了保护容器的安全性,可以采取一些措施,例如使用TLS/SSL来加密容器之间的通信、限制容器的权限、使用更安全的运行时参数等。此外,还需要及时更新Docker引擎和容器来修复安全漏洞。

6.docker为什么要用容器
  1. 隔离性:容器与主机和其他容器完全隔离,每个容器都有自己的文件系统、进程、用户、IP地址和端口空间等,相互之间不会产生干扰和冲突。
  2. 可移植性:容器是可移植的,可以在不同的平台上运行,无论是Windows、Linux还是MacOS等都可以使用容器。
  3. 轻量级:容器只包含应用和其运行环境,没有虚拟化层,因此启动时间更快,资源占用更少,更加轻量级。
  4. 快速部署:容器可以直接从镜像运行,无需额外创建虚拟机,使得部署速度更快。
  5. 弹性扩展:容器可以轻松地进行横向扩展,可以快速地增加或减少容器数量来满足业务需求。
  6. 标准化:容器标准化的构建方式使得开发、测试和部署都能够遵循统一的规范,更加高效。

Linux基础知识

1.操作系统的基础知识

Linux是一种开源的操作系统,它基于Unix内核。Linux具有稳定性和安全性高的特点,并且被广泛应用于服务器、桌面和移动设备等领域。Linux提供了许多常用的命令行工具和系统管理工具,例如bash shell、vi/vim编辑器、dpkg/apt包管理器等。

2.常用Linux发行版和特点

Linux发行版是指将Linux内核和一些软件包组合在一起形成的完整操作系统。一些常用的Linux发行版包括Ubuntu、Debian、Fedora、CentOS等。每个发行版都有自己的特点和优势,可以根据实际需求选择适合自己的发行版。

安装Docker及基础操作

Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。

Docker CE 分为 stable testnightly 三个更新频道。

官方网站上有各种环境下的 安装指南,这里主要介绍 Docker CE 在 CentOS上的安装。

1.CentOS安装Docker

Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10, CentOS 7 满足最低内核的要求,所以我们在CentOS 7安装Docker。

1.1.卸载(可选)

如果之前安装过旧版本的Docker,可以使用下面命令卸载:

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine \
                  docker-ce
1.2.安装docker

首先需要大家虚拟机联网,安装yum工具

yum install -y yum-utils \
           device-mapper-persistent-data \
           lvm2 --skip-broken

然后更新本地镜像源:

# 设置docker镜像源
yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo

yum makecache fast

然后输入命令:

yum install -y docker-ce

docker-ce为社区免费版本。稍等片刻,docker即可安装成功。

1.3.启动docker

Docker应用需要用到各种端口,逐一去修改防火墙设置。非常麻烦,因此建议大家直接关闭防火墙!

启动docker前,一定要关闭防火墙后!!

启动docker前,一定要关闭防火墙后!!

启动docker前,一定要关闭防火墙后!!

# 关闭
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld

通过命令启动docker:

systemctl start docker  # 启动docker服务

systemctl stop docker  # 停止docker服务

systemctl restart docker  # 重启docker服务

然后输入命令,可以查看docker版本:

docker -v
1.4.配置镜像加速

docker官方镜像仓库网速较差,我们需要设置国内镜像服务:

参考阿里云的镜像加速文档:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://ymptrjl6.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

image-20231102231142393

2.常用Docker镜像命令行的使用方法

使用Docker镜像需要掌握一些常用的命令行工具,包括:

  • docker build:用于构建Docker镜像
  • docker images:用于查看本地可用的镜像列表
  • docker commit:用于从现有容器创建一个新的镜像
  • docker push:用于将镜像推送到Docker仓库
  • docker pull:用于从Docker仓库拉取镜像
  • docker rmi :用于根据镜像名或id删除镜像
  • docker save :用于镜像保存为压缩文件
  • docker load:用于将加载压缩文件为镜像

image-20231102232539941

image-20231102232744543

image-20231102233011776

image-20231102233330552

3.Docker容器相关的命令行命令包括:

  1. docker run:启动一个新容器并运行其中的命令。例如:docker run -it ubuntu /bin/bash
  2. docker ps:列出正在运行的容器。
  3. docker inspect:查看容器详细信息。例如:docker inspect <container_id>
  4. docker stop:停止一个正在运行的容器。例如:docker stop <container_id>
  5. docker rm:删除一个容器。例如:docker rm <container_id>
  6. docker pull:从Docker Hub上拉取镜像。例如:docker pull ubuntu
  7. docker push:将镜像推送到Docker Hub。例如:docker push <your_image_name>
  8. docker commit:从正在运行的容器中创建镜像。例如:docker commit <container_id> <your_image_name>
  9. docker images:列出本地可用的所有镜像。
  10. docker login:登录到Docker Hub。例如:docker login
  11. docker tag:为镜像添加标签。例如:docker tag <image_id> <your_image_name>:<tag>

image-20231102234821944

image-20231103000333955

image-20231103000555471

Docker进阶操作

1.数据卷挂载

image-20231103001047552

image-20231103004125527

mysql挂载示例:

image-20231103154944703

2.自定义镜像

image-20231103155131781

dockerfile文件内容示例:

image-20231103160532471

image-20231103160702587

3.DockerCompose

image-20231103160926130

DockerCompose部署微服务示例:

image-20231103161307650

3.1.下载

Linux下需要通过命令下载:

# 安装
curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

也可以通过以下步骤来安装Docker Compose:

  1. 安装pip:如果尚未安装pip,可以使用以下命令进行安装:sudo yum install python-pip
  2. 升级pip:如果pip版本不是最新的,可以使用以下命令进行升级:sudo pip install --upgrade pip
  3. 安装Docker Compose:使用以下命令来安装Docker Compose:sudo pip install docker-compose
  4. 检查安装是否成功:可以运行以下命令来检查Docker Compose是否安装成功:docker-compose --version

以上步骤适用于大部分Linux发行版,包括Ubuntu、Debian和CentOS等。对于某些特定的操作系统或发行版,可能需要使用不同的命令或脚本进行安装。建议在官方文档或社区中查找针对特定环境的具体安装步骤。

3.2.修改文件权限

修改文件权限:

# 修改权限
chmod +x /usr/local/bin/docker-compose
3.3.Base自动补全命令:
# 补全命令
curl -L https://raw.githubusercontent.com/docker/compose/1.29.1/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose

如果这里出现错误,需要修改自己的hosts文件:

echo "199.232.68.133 raw.githubusercontent.com" >> /etc/hosts

4.Docker镜像仓库

搭建镜像仓库可以基于Docker官方提供的DockerRegistry来实现。

官网地址:https://hub.docker.com/_/registry

4.1.简化版镜像仓库

Docker官方的Docker Registry是一个基础版本的Docker镜像仓库,具备仓库管理的完整功能,但是没有图形化界面。

搭建方式比较简单,命令如下:

docker run -d \
    --restart=always \
    --name registry	\
    -p 5000:5000 \
    -v registry-data:/var/lib/registry \
    registry

命令中挂载了一个数据卷registry-data到容器内的/var/lib/registry 目录,这是私有镜像库存放数据的目录。

访问http://YourIp:5000/v2/_catalog 可以查看当前私有镜像服务中包含的镜像

4.2.带有图形化界面版本

使用DockerCompose部署带有图象界面的DockerRegistry,命令如下:

image-20231104003006766

然后在yml配置文件中添加以下代码:

version: '3.0'
services:
  registry:
    image: registry
    volumes:
      - ./registry-data:/var/lib/registry
  ui:
    image: joxit/docker-registry-ui:static
    ports:
      - 8080:80
    environment:
      - REGISTRY_TITLE=本地私有仓库
      - REGISTRY_URL=http://registry:5000
    depends_on:
      - registry

启动该compose:

docker-compose up -d
4.3.配置Docker信任地址

我们的私服采用的是http协议,默认不被Docker信任,所以需要做一个配置:

# 打开要修改的文件
vi /etc/docker/daemon.json
# 添加内容:
"insecure-registries":["http://192.168.150.101:8080"]#这里替换成你的仓库地址
# 重加载
systemctl daemon-reload
# 重启docker

image-20231103162159081

常见问题报错

执行 docker-compose up -d 命令后没有任何响应

可能有以下几个原因:

  1. Docker服务没有启动:首先需要检查Docker服务是否已经启动,可以在命令行中输入 systemctl status docker 来检查Docker服务的状态。如果Docker服务没有启动,可以使用 systemctl start docker 命令来启动。
  2. Docker Compose服务没有启动:如果Docker服务已经启动,那么需要检查Docker Compose服务是否已经启动。可以在命令行中输入 systemctl status docker-compose 来检查Docker Compose服务的状态。如果Docker Compose服务没有启动,可以使用 systemctl start docker-compose 命令来启动。
  3. Docker Compose文件不存在或错误:如果Docker Compose服务已经启动,但是执行 docker-compose up -d 命令后仍然没有响应,那么需要检查Docker Compose文件中是否存在错误或者文件路径是否正确。可以进入Docker Compose文件所在的目录,使用 cat docker-compose.yml 命令来查看文件内容。
  4. 网络问题:如果以上都没有问题,那么可能是网络问题导致的。可以尝试重新启动网络服务或者检查网络设置是否正确。

需要注意的是,执行 docker-compose up -d 命令时需要确保当前目录下存在正确的Docker Compose文件(如 docker-compose.yml),并且Docker服务和Docker Compose服务都已经正确启动。

“Failed to start docker-compose.service: Unit not found”

这个错误通常意味着你的系统中没有找到 docker-compose.service 文件这可能是由于以下原因之一造成的:

  1. Docker Compose 没有正确安装
  2. Docker Compose 的服务文件路径不正确
  3. Docker Compose 的服务没有被正确地添加到系统服务中

你可以按照以下步骤进行排查和解决:

  1. 首先,确认你已经正确地安装了 Docker Compose你可以通过在命令行中输入 docker-compose --version 来检查是否已经安装如果已经安装,将显示 Docker Compose 的版本信息如果没有安装,你需要按照 Docker Compose 的官方文档来安装它
  2. 如果 Docker Compose 已经安装,那么检查 docker-compose.service 文件是否存在你可以在命令行中输入 find / -name docker-compose.service 来搜索这个文件如果文件存在,它应该位于 /usr/lib/systemd/system/docker-compose.service如果文件不存在,可能是因为 Docker Compose 的安装路径不正确,或者服务文件没有被正确地添加到系统服务中
  3. 如果 docker-compose.service 文件存在,确保它的内容是正确的你可以使用 cat /usr/lib/systemd/system/docker-compose.service 命令来查看服务文件的内容如果内容不正确,你需要修改服务文件并重新启动 Docker Compose 服务你可以使用 systemctl restart docker-compose 命令来重新启动它
  4. 如果上述步骤都没有解决问题,你可以尝试卸载并重新安装 Docker Compose这可能有助于修复问题

注意:在执行任何系统级的操作之前,建议你先备份你的重要数据和配置文件

索这个文件如果文件存在,它应该位于 /usr/lib/systemd/system/docker-compose.service如果文件不存在,可能是因为 Docker Compose 的安装路径不正确,或者服务文件没有被正确地添加到系统服务中
3. 如果 docker-compose.service 文件存在,确保它的内容是正确的你可以使用 cat /usr/lib/systemd/system/docker-compose.service 命令来查看服务文件的内容如果内容不正确,你需要修改服务文件并重新启动 Docker Compose 服务你可以使用 systemctl restart docker-compose 命令来重新启动它
4. 如果上述步骤都没有解决问题,你可以尝试卸载并重新安装 Docker Compose这可能有助于修复问题

注意:在执行任何系统级的操作之前,建议你先备份你的重要数据和配置文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值