首页 > 其他分享 >Docker

Docker

时间:2024-10-16 22:46:00浏览次数:6  
标签:容器 nginx 镜像 Docker com docker

什么是Docker

Docker 是一个开源的容器化平台,允许开发者将应用程序及其依赖项打包到一个轻量级的、独立的容器中,并可以在任何环境中运行。容器通过共享主机操作系统的内核,具有更高的性能和效率,与虚拟机相比,消耗更少的资源。Docker 提供了一种标准化的方式来构建、运行和管理应用程序,确保在不同平台上具有一致性,从而解决了“在我机器上可以运行”的问题。

Docker 的主要组成部分包括:

  1. Docker 镜像(Image):应用程序和其依赖环境的只读模板。
  2. Docker 容器(Container):镜像的实例,是一个运行的独立环境。
  3. Docker 仓库(Registry):存储和分发 Docker 镜像的仓库,例如 Docker Hub。
  4. Docker 引擎(Engine):负责运行和管理容器的引擎。

Docker 常用于开发、测试和生产环境中,简化了应用程序的部署过程。

安装Docker

1.卸载旧版Docker

yum remove docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-engine \
    docker-selinux 

2.配置Docker的yml库

首先安装一个yum工具

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

安装成功后,执行命令,配置Docker的yum源(已更新为阿里云源):

sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo

更新yum,建立缓存

sudo yum makecache fast

3.安装Docker

yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

4.启动和校验

# 启动Docker
systemctl start docker

# 停止Docker
systemctl stop docker

# 重启
systemctl restart docker

# 设置开机自启
systemctl enable docker

# 执行docker ps命令,如果不报错,说明安装启动成功
docker ps

5.配置加速镜像

# 创建目录
mkdir -p /etc/docker

# 复制内容,注意把其中的镜像加速地址改成你自己的
tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": [
        "http://hub-mirror.c.163.com",
        "https://mirrors.tuna.tsinghua.edu.cn",
        "http://mirrors.sohu.com",
        "https://ustc-edu-cn.mirror.aliyuncs.com",
        "https://ccr.ccs.tencentyun.com",
        "https://docker.m.daocloud.io",
        "https://docker.awsl9527.cn"
    ]
}
EOF

# 重新加载配置
systemctl daemon-reload

# 重启Docker
systemctl restart docker

注意事项阿里云的加速镜像只能在阿里云的产品中使用,这里我建议去申请华为云的加速镜像,华为云的加速镜像是完全免费的。

Docker常用命令

命令 说明 文档地址
docker pull 拉取镜像 docker pull
docker push 推送镜像到DockerRegistry docker push
docker images 查看本地镜像 docker images
docker rmi 删除本地镜像 docker rmi
docker run 创建并运行容器(不能重复创建) docker run
docker stop 停止指定容器 docker stop
docker start 启动指定容器 docker start
docker restart 重新启动容器 docker restart
docker rm 删除指定容器 docs.docker.com
docker ps 查看容器 docker ps
docker logs 查看容器运行日志 docker logs
docker exec 进入容器 docker exec
docker save 保存镜像到本地压缩文件 docker save
docker load 加载本地压缩文件到镜像 docker load
docker inspect 查看容器详细信息 docker inspect

数据卷

容器是隔离环境,容器内程序的文件、配置、运行时产生的容器都在容器内部,我们要读写容器内的文件非常不方便。大家思考几个问题:

  • 如果要升级MySQL版本,需要销毁旧容器,那么数据岂不是跟着被销毁了?

  • MySQL、Nginx容器运行后,如果我要修改其中的某些配置该怎么办?

  • 我想要让Nginx代理我的静态资源怎么办?

1.什么是数据卷

数据卷(volume)是一个虚拟目录,是容器内目录宿主机****目录之间映射的桥梁。

以Nginx为例,我们知道Nginx中有两个关键的目录:

  • html:放置一些静态资源

  • conf:放置配置文件

如果我们要让Nginx代理我们的静态资源,最好是放到html目录;如果我们要修改Nginx的配置,最好是找到conf下的nginx.conf文件。

但遗憾的是,容器运行的Nginx所有的文件都在容器内部。所以我们必须利用数据卷将两个目录与宿主机目录关联,方便我们操作。如图:

因此,容器提供程序的运行环境,但是程序运行产生的数据、程序运行依赖的配置都应该与容器****解耦

2.数据卷常用命令

命令 说明 文档地址
docker volume create 创建数据卷 docker volume create
docker volume ls 查看所有数据卷 docs.docker.com
docker volume rm 删除指定数据卷 docs.docker.com
docker volume inspect 查看某个数据卷的详情 docs.docker.com
docker volume prune 清除数据卷 docker volume prune

Docker 镜像

1.什么是docker镜像

Docker 镜像是一个轻量级、可执行的独立软件包,包含了运行某个应用所需的一切,包括代码、运行时、库、环境变量和配置文件。镜像是 Docker 的基本构建块,用于创建 Docker 容器。

Docker 网络

1.常用命令

命令 说明 文档地址
docker network create 创建一个网络 docker network create
docker network ls 查看所有网络 docs.docker.com
docker network rm 删除指定网络 docs.docker.com
docker network prune 清除未使用的网络 docs.docker.com
docker network connect 使指定容器连接加入某网络 docs.docker.com
docker network disconnect 使指定容器连接离开某网络 docker network disconnect
docker network inspect 查看网络详细信息 docker network inspect

DockerCompose

Docker Compose 是一个用于定义和运行多个 Docker 容器的工具,能够通过一个配置文件(通常是 docker-compose.yml)来简化应用的部署。它使得管理多容器应用变得更加容易,特别是当应用依赖于多个服务(例如数据库、缓存、消息队列等)时。

version: "3.8"

services:
  mysql:
    image: mysql
    container_name: mysql
    ports:
      - "3306:3306"
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: 123
    volumes:
      - "./mysql/conf:/etc/mysql/conf.d"
      - "./mysql/data:/var/lib/mysql"
      - "./mysql/init:/docker-entrypoint-initdb.d"
    networks:
      - hm-net
  hmall:
    build: 
      context: .
      dockerfile: Dockerfile
    container_name: hmall
    ports:
      - "8080:8080"
    networks:
      - hm-net
    depends_on:
      - mysql
  nginx:
    image: nginx
    container_name: nginx
    ports:
      - "18080:18080"
      - "18081:18081"
    volumes:
      - "./nginx/nginx.conf:/etc/nginx/nginx.conf"
      - "./nginx/html:/usr/share/nginx/html"
    depends_on:
      - hmall
    networks:
      - hm-net
networks:
  hm-net:
    name: hmall

标签:容器,nginx,镜像,Docker,com,docker
From: https://www.cnblogs.com/freps/p/18471091

相关文章

  • Docker入门实践(六)
    环境VMwareWorkstationProubuntu-23.04构建镜像了解镜像层实现原理完成下载的层被提取到主机系统特定的目录。当你从镜像启动一个容器,会按特定顺序将所有层堆叠起来组成一个统一的文件系统。当容器启动,使用chroot设置容器的根目录为这个统一文件系统的路径。当统一文......
  • Docker实践与应用举例
    Docker实践与应用举例1.Docker简介1.1什么是Docker?Docker是一种开源的容器化平台,用于简化应用程序的开发、部署和运行。容器化是将应用程序及其依赖打包在一起,在任何支持Docker的环境中运行,确保应用程序在开发、测试、生产环境的一致性。1.2Dockervs虚拟机虽然Doc......
  • shell脚本自动选择空间最大的目录安装docker
    #!/bin/bash#二进制包安装docker-xy.xy.x-ce#变量unamer=`uname-r|cut-d'.'-f1-2`Max_Space=$(df|grep"^/dev"|sort-rn-k2|head-1|awk'{print$6}')Registry="mirror.eastraycloud.com:8665"#判断当前系统类型Unamer=$(uname-v|......
  • 基于cloudreve(Docker应用)搭建网盘服务,用于目录的分享和在线预览。
    文章目录I基于cloudreve(Docker应用)搭建网盘服务安装主要功能设置角色最大容量II知识扩展:网盘类的文件预览需求背景:iOS可以直接预览PDF等常见格式文件,但是Android浏览器需要先下载文件,才能查看文件内容,因此需要搭建支持目录的分享和在线预览的Min......
  • centos离线安装docker,docker-compose
    安装环境操作系统:Centos7.99内核版本:3.10.0-1160.el7.x86_64安装用户:rootdocker离线安装1下载压缩包官网下载地址:https://download.docker.com/linux/static/stable/x86_64/这里默认选择最新版本(26.0.2)。2上传压缩包并解压tarzxvfdocker-26.0.2.tgz3......
  • Docker Compose部署GitLab
    今天我将向你展示如何在一小时内安装GitLab服务器,并在其中运行第一个CI/CD进程。本文是“如何开始使用流行的CI/CD工具”系列文章的一部分。在本文中,我将向你展示如何安装CI/CD工具,以及如何准备基于Maven构建和测试一个简单项目的流程。什么是GitLab?Gitlab是一款......
  • docker如何建立本地私有仓库,并将docker镜像推到私有仓库
    在Docker中,您可以通过DockerRegistry创建本地私有仓库,并将Docker镜像推送到这个私有仓库。以下是具体步骤:步骤1:启动一个本地Docker私有仓库拉取registry镜像:Docker官方提供了一个registry镜像,可以用来运行私有仓库。首先,您需要从DockerHub拉取这个镜......
  • DolphinScheduler快速上手:基于Docker Compose的安装与配置全攻略
    DolphinScheduler是一款强大的开源分布式任务调度系统,广泛应用于大数据领域,用于管理复杂的工作流。本文将详细介绍如何通过DockerCompose安装和配置DolphinScheduler,以便快速搭建并使用这一系统。1.环境准备首先,确保你的系统已经安装了Docker和DockerCompose。Docker......
  • docker-compose安装mysql/redis/nacos环境
    dockerdocker-compose安装查看上一篇文章1.新建目录并创建docker-compose.yaml文件文件内容services:mysql:image:mysql:8.2.0container_name:mysqlenvironment:MYSQL_ROOT_PASSWORD:1qaz@WSXMYSQL_DATABASE:nacosMYSQL_USER:......
  • linux抓取docker内部服务网络包
    docker内应用抓包分析1、获取docker的网络信息dockernetworkls2、查看docker网络的网段dockernetworkinspectxxx3、找到docker的虚拟网卡ifconfig对网卡的端口进行抓包处理tcpdump-ibr-0c8b954bbb83port9962-w./test1.captcpdump-ieth0port9401-w./......