Docker

种地  论坛元老 | 2025-4-12 01:23:54 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1707|帖子 1707|积分 5121



一、Docker概述

什么是Docker?

Docker 是一个开源的应用容器引擎,Docker 可以让开发者打包他们的应用以及依靠包到一个轻量级、可移植的容器中,然后发布到任何盛行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。更重要的是容器性能开销极低。
Docker直译过来为“搬运工”,就是搬运集装箱Container,Container可以装载任意范例的App,开发人员可以通过Docker将App变成一种标准化的,可移植的,自管理的组件,我们可以在任意主流操作系统中开发,调试和运行。
可以简单理解为一个轻量级的虚拟机,只虚拟所需要的运行环境,其他多余软件之类一概不要。
   总结  : docker  是一种容器技术,解决软件跨环境迁移的问题。  功能

打包:可以将软件运行所需依靠,第三方库,软件打包到一块,变成一个安装包。(背面会演示)
分发:可以把你打包好的“安装包”上传到一个镜像堆栈,其他人可以非常方便的获取和安装
部署:拿着“安装包”就可以一个下令运行起来你的应用,自动模拟出一摸一样的运行环境
二、Docker 架构

   Docker  使用客户端-服务器架构,此中包括多个关键组件,确保容器化应用的高效构建、管理和运行。    Docker客户端  (client)   与 保卫进程  (Docker daemon)举行对话,该保卫进程   完成了构建、运行和分发   Docker   容器的繁重工作。    Docker 容器通过 Docker 镜像来创建。
  容器与镜像的关系类似于面向对象编程中的对象与类。
    Docker面向对象容器对象镜像类     堆栈(   Repository   ):   是   docker   提供的一个用来保存镜像的堆栈。       镜像(   Image   )      镜像就是一个可执行的包   ,   用来创建容器   ,docker中每每一个软件就是一个镜像。       容器(   Container   ):   容器是镜像运行时的实体。容器可以被创建、启动、制止、删除、停息等。   

Docker 架构的工作流程



  • 构建镜像:使用 Dockerfile 创建镜像。
  • 推送镜像到注册表:将镜像上传到 Docker Hub 或私有注册表中。
  • 拉取镜像:通过 docker pull 从注册表中拉取镜像。
  • 运行容器:使用镜像创建并启动容器。
  • 管理容器:使用 Docker 客户端下令管理正在运行的容器(例如检察日记、制止容器、检察资源使用情况等)。
  • 网络与存储:容器之间通过 Docker 网络连接,数据通过 Docker 卷或绑定挂载举行长期化。
三、Docker安装

笔者这里使用VMware创建虚拟机(CentOS 8)安装Docker,同时使用FinalShell工具通过SSH连接。
1.更新yum源

CentOS8已经制止维护,可能会出现错误,只要更换/etc/yum.repos.d目次下的源为可用源
2.安装yum-utils,配置镜像源

  1. yum install  -y  yum-utils
复制代码
3.设置更新镜像源 

  1. yum-config-manager \
  2. --add-repo \
  3. https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
复制代码
4.安装

  1. yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
复制代码
 5.查抄版本

  1. docker -v
复制代码

 如图即为安装成功
6.常用启动下令

启动下令
  1. systemctl start docker
复制代码
关闭下令
  1. systemctl stop docker
复制代码
设置开机自动启动
  1. systemctl enable docker
复制代码
7.配置镜像

在etc目次下创建docker目次
  1. mkdir -p /etc/docker
复制代码
进入该目次创建daemon.json配置
  1. touch daemon.json
复制代码
修改文件
  1. vim daemon.json
复制代码
  1. {
  2.         "registry-mirrors": [
  3.                 "https://mirror.aliyuncs.com",
  4.                 "https://mirror.ccs.tencentyun.com",
  5.                 "https://mirror.baidubce.com",
  6.                 "https://docker.mirrors.ustc.edu.cn",
  7.             "https://docker.nju.edu.cn",
  8.                 "https://docker.m.daocloud.io",
  9.                 "https://6ddblrw4.mirror.aliyuncs.com",
  10.                 "https://<cloudflare-accelerator-url>"
  11.         ]
  12. }
复制代码
这是一些镜像
Docker 官方和国内很多云服务商都提供了国内加速器服务,例如:


  • 科大镜像:https://docker.mirrors.ustc.edu.cn/
  • 网易:https://hub-mirror.c.163.com/
  • 阿里云:https://<你的ID>.mirror.aliyuncs.com
  • 七牛云加速器:https://reg-mirror.qiniu.com
当配置某一个加速器地址之后,若发现拉取不到镜像,请切换到另一个加速器地址。国内各大云服务商均提供了 Docker 镜像加速服务,发起根据运行 Docker 的云平台选择对应的镜像加速服务。
 8.重载配置启动

重载配置
  1. systemctl daemon-reload
复制代码
重启
  1. systemctl restart docker
复制代码
四、Docker服务下令

1.镜像下令

  1. 镜像列表
  2.    docker images  
  3. 删除本地镜像
  4.    docker rmi 镜像名/镜像id
  5. 从docker仓库拉取镜像到本地仓库
  6.    docker pull
  7. 从dockerfile构建镜像
  8.    docker build
  9. 保存镜像到本地,生成tar文件
  10.         docker save
  11. 载入本地镜像
  12.         docker load
  13. 推送镜像到服务器
  14.         docker push
复制代码
 
2.容器下令

  1. 1.查看所有容器
  2. docker ps -a
  3. 2.停止容器
  4.  docker stop 容器名/容器id
  5. 3.删除容器
  6. docker rm 容器名/容器id
  7. 4. 启动容器
  8.  docker start 容器名/容器id
  9. 5.创建一个新的容器并运行
  10. docker  run 镜像名/镜像id
复制代码

镜像和容器
镜像(Image):Docker将应用程序及其所需的依靠、函数库、环境、配置等文件打包在一起,称为镜像。
容器(Container):镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器做隔离,对外不可见。  
五、Docker安装服务

安装mysql

1.下载镜像
  1. docker pull 镜像名:版本号
  2. docker pull mysql:8.0.33
复制代码
2.安装
  1. docker run -d -p 3306:3306 \
  2. --name mysql \
  3. --restart=always \
  4. --privileged=true \
  5. -e TZ=Asia/Shanghai \
  6. -e MYSQL_ROOT_PASSWORD=root \
  7. mysql:8.0.33
复制代码
--name:指定容器名称
--restart=always  自动启动
--privileged=true  拥有特权
-p:指定端口映射
-d:让容器配景运行
3.进入容器
  1. docker  exec  -it   容器名/容器id  bash
复制代码
4.登录mysql
  1. mysql  -uroot  -proot
复制代码
 

5.修改root账号加密方式
  1. ALTER USER  'root'@'%'  IDENTIFIED WITH mysql_native_password BY  'root';
复制代码
这一步开始,就可以从可视化数据库客户端登录访问了
IP为虚拟IP地址

6.退出
  1. exit
复制代码
安装Nginx

1.下载镜像
  1. 不指定版本号默认最新
  2. docker pull nginx:1.24
复制代码
2.安装
  1.   docker run -d -p 80:80 \
  2.   --name nginx \
  3.   --restart=always \
  4.   --privileged=true \
  5.   nginx:1.24
复制代码
3.访问
虚拟IP:80

进入容器内部,容器内部部署项目标目次为 /usr/share/nginx/html  
  1. docker exec -it  nginx  bash
复制代码
  1. cd /usr/share/nginx/html
复制代码
此时又有新的问题,如果我们想将自己的前端项目部署到容器中,
或者修改容器内的文件会很不方便.
这时需要在外部配置一个数据卷挂载文件.
数据卷挂载 

数据卷,即一个虚拟目次,是容器内目次与宿主机目次之间映射的桥梁。
它将宿主机目次映射到容器内目次,方便我们操作容器内文件,或者方便迁移容器产生的数据。
在执行docker run下令时,使用-v数据卷:容器内目次可以完成数据卷挂载。
创建数据卷
  1. mkdir -p /opt/nginx/html
复制代码
安装
  1.   docker run -d -p 80:80 \
  2.   --name nginx \
  3.   --restart=always \
  4.   --privileged=true \
  5.   -v /opt/nginx/html:/usr/share/nginx/html \
  6.   nginx:1.24
复制代码
此中 -v /opt/nginx/html 就是与容器中对应的一个在宿主机中的数据卷
我们只需要将文件部署到宿主机的/opt/nginx/html目次下即可
安装Tomcat/Redis

参考菜鸟教程,包学包会。
Docker安装Tomcat
Docker安装Redis
菜鸟教程
六、自定义镜像

当我们从 docker 镜像堆栈中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像举行更改,使用 Dockerfile 指令来创建一个新的镜像
我们使用下令 docker build , 从零开始来创建一个新的镜像。为此,我们需要创建一个 Dockerfile 文件,此中包含一组指令来告诉 Docker 如何构建我们的镜像。
指令阐明示例FROM指定基础镜像java:8ADD拷贝当地文件到镜像的指定目次/demo.jar demo.jarEXPOSE指定容器运行时监听的端口,是给镜像使用者看的EXPOSE 8080ENTRYPOINT /CMD镜像中应用的启动下令,容器运行时调用ENTRYPOINT java -jar xx.jar 示例
1.将我们的springboot项目打包news.jar
2. 在linux中创建一个文件夹用来存放Dockerfile和jar包
  1. mkdir /opt/news
复制代码
3.将springboot打包后的jar文件上传到news目次中
4.创建一个名为Dockerfile的文件
  1. FROM openjdk:8-jre
  2. ADD  /news.jar  news.jar
  3. EXPOSE 8088
  4. CMD java -jar news.jar
复制代码
5.使用下令将dockerfile中配置的内容生成一个镜像
  1. docker build  -t  news .
复制代码
6.运行自定义镜像
  1. docker run -d -p 8088:8088 \
  2. --name news8088 \
  3. --restart=always \
  4. news
复制代码
7.访问
IP:8088
8.将自定义镜像下载到当地
进入要保存的目次,输入以下下令
  1. docker save news > news.tar
复制代码
9.载入当地镜像
  1. docker load < news.tar
复制代码

相关参考链接
1.菜鸟教程:Docker 教程 | 菜鸟教程 (runoob.com)
2.Docker官网:https://www.docker.com
3.csdn大神解读:Docker入门教程(非常具体)从零基础入门到精通,看完这一篇就够了

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

种地

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表