Docker

1.Docker基础
2.镜像命令
3.数据卷
4.Docker集群/快速部署

Docker简介

  • Docker是一个快速交付应用,运行应用的技术
  • 1.可以将程序及其依赖、运行环境打包成一个镜像,可以迁移到任意Linux系统上
  • 2.运行时,可以利用沙箱机制形成隔离容器,各个应用互不干扰
  • 3.启动、移除时,都可以通过任意一行命令,方便快捷

Docker与虚拟机的差异

  • docker是一个系统进程,虚拟机是再操作系统中的操作系统
  • docker体积小,启动快,性能好,虚拟机体积大,启动速度慢、性能一般

Docker

  • 镜像:将程序的依赖、环境、配置打包在一起
  • 容器:镜像运行起来就是容器,一个镜像可以启动成多个程序
  • Docker结构:
  • 服务端:接收命令或远程请求,操作镜像或容器
  • 客户端:发送命令或请求到Docker服务端
  • DockerHub:
  • 一个镜像托管的服务器,类似于阿里云镜像服务,统称为DockerRegistry

安装

  • 安装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
  • 关闭防火墙
 关闭
systemctl stop firewalld
禁止开机启动防火墙
systemctl disable firewalld
  • 启动
systemctl start docker  # 启动docker服务

systemctl stop docker  # 停止docker服务

systemctl restart docker  # 重启docker服务

docker -v   #查看版本
  • 配置镜像加速器 阿里云的
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://jl0osa71.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

Docker 镜像命令

  • 拉取镜像:docker pull xx (nginx)
  • 查看镜像:docker images
  • 将指定镜像保存成 tar 归档文件:docker save -o nginx.tar nginx:latest
  • 删除镜像:docker rmi (nginx:latest)
  • 读取tar文件变成镜像:docker load -i nginx.tar

容器的相关命令

  • 启动容器: docker run --name mn -p 80:80 -d nginx 在这里插入图片描述

  • 查看容器是否启动: docker ps

  • 查看日志: docker logs mn / -f

  • 进入容器 docker exec -it mn(名称) bash

  • 退出容器,返回linux界面 exit

  • 退出容器 docker stop 容器名称

  • 删除容器 docker rm

  • 查看容器状态: docker ps / -a

数据卷

  • 数据卷:数据卷与容器的文件绑定,再数据卷中修改文件,容器立马可见修改的内容

在这里插入图片描述

  • 作用:将容器与数据分离,解耦合,方便操作容器内数据,保证数据安全

  • 操作方法

    • 创建数据卷: docker volume create 数据卷名称

    • 查看数据卷: docker volume ls
      在这里插入图片描述

    • 查看详情: docker volume inspect 数据卷名称

    • 删除数据卷: docker volume rm 数据卷名称

    • 删除未使用的数据卷 : docker volume prune

    挂载数据卷

  • 创建数据卷:docker volume create 数据卷名称

  • 将创建数据卷挂在数据卷到容器的html目录:docker run --name mn -p 80:80 -v html:/usr/share/nginx/html -d nginx(没有数据卷注解创建)

在这里插入图片描述

  1. 查看html数据卷的位置: docker volume inspect html

  2. 进入该数据卷 : cd /目录
    在这里插入图片描述

  3. 修改数据卷内容 : vi index


  1. docker run 命令通过 -v 挂载文件或目录到之地那个容器中

  2. -v 宿主机文件:容器内文件

  3. -v 宿主机目录: 文件目录

  4. 在这里插入图片描述

  5. 数据卷挂载与目录直接挂载的区别:

  6. 1.数据卷挂载耦合度低,由docker来管理目录,但是目录较深不好找

  7. 2.布鲁挂载耦合度高,需要自己创建目录,不过目录容易查找

镜像

  1. 镜像是将应用程序需要的系统函数库、环境、配置、依赖打成包而成的·
    在这里插入图片描述
    自定义镜像

1 . 新建目录:mkdir docker-demo
2 .cd 到指定目录
3. 将文件上传到指定目录
在这里插入图片描述4.构建镜像 : docker build -t javaweb:1.0(镜像名称) .(当前目录)
5.启动当前镜像: docker run --name web -p 8090:8090 -d javaweb:1.0
6.根据当前ip:端口进行运行
Dockerfile
1.构建镜像的过程 从0开始
在这里插入图片描述

2.构建镜像的过程 别人做好的镜像
![在这里插入图片描述](https://img-blog.csdnimg.cn/6dcd3cf93ad145c2b903be92598919aa.png

Docker集群/快速部署

使用DockerCompose
步骤

  • 1.上传文件
    在这里插入图片描述
  • 或通过命令下载
  • curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-uname -s-uname -m > /usr/local/bin/docker-compose
  • 2.# 修改权限 chmod +x /usr/local/bin/docker-compose
  • 3.echo “199.232.68.133 raw.githubusercontent.com” >> /etc/hosts
  • 4.curl -L https://raw.githubusercontent.com/docker/compose/1.29.1/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose

微服务集群的部署

  • 编写docker-compose文件
    -

  • 修改微服务项目,将数据库、nacos地址的命名都修改未docker-compose中的服务名

  • 在这里插入图片描述
    在这里插入图片描述

  • 使用maven打包工具,将项目中的每个微服务都打包成app.jar

  • 将打包好的app.jar拷贝到对应的目录中

  • 将微服务上传至虚拟机,利用docker-compose up -d 进行运行

  • 重新启动微服务 docker-compose restart gateway userservice orderservice

搭建镜像仓库

1.修改文件: vi /etc/docker/daemon.json
2.添加内容:“insecure-registries”:[“http://192.168.150.101:8080”]
3.# 重加载systemctl daemon-reload / 重启docker systemctl restart docker
4.新建文件:touch docker-compose.xml
5.复制内容到文件
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
6.重新启动: docker-compose up -d
7.访问ip+端口 即可访问
推送
推送到仓库: docker pull 192.168.13.131:8080(厂库地址)/nginx:1.0(文件:版本)
删除镜像: docker rmi 镜像名称:版本
访问镜像仓库/拉取
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值