Docker技术

1.Docker技术简介

  • Docker是一个虚拟化平台( 官网https://www.docker.com/),诞生于 2013 年初,基于 Google 公司的 Go 语言进行实现。可以通过虚拟化方式,为应用提供可运行的容器。基于这种方式,可更快地打包、测试以及部署应用程序。
    帮忙启动容器。
  • 设计思想:分而治之,每个容器启动后分配一个唯一的命名空间
    Docker官网
    在这里插入图片描述
    无需部署环境

镜像官网
在这里插入图片描述
劣势:性能稍差

2. Docker架构(CS)

  • Docker 使用客户端-服务器架构。Docker客户端与 Docker守护进程对话,后者负责构建、运行和分发 Docker 容器的繁重工作。Docker 客户端和守护程序可以 在同一系统上运行,或者您可以将 Docker 客户端连接到远程 Docker 守护程序。Docker 客户端和守护进程使用 REST API、UNIX 套接字或网络接口进行通信。另一个 Docker 客户端是 Docker Compose,它允许您使用由一组容器组成的应用程序。

执行流程

在这里插入图片描述

  • 命令

docker build 打包
docker pull
docker run

3. Docker安装实践

3.1查看Linux的ip地址

前提是已经安装虚拟机
在这里插入图片描述

3.2 创建终端

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

在这里插入图片描述
以上三个文件下载地址
下载docker离线包
下载离线安装工具

3.3 查询文件

在这里插入图片描述

3.4增加安装权限

在这里插入图片描述

3.5 安装docker到Linux

在这里插入图片描述

4. Docker服务基本实现(Linux)

 systemctl start docker  启动docker服务
 systemctl status docker  查看Docker状态
 systemctl stop docker  关闭docker服务
systemctl enable docker 设置Docker开机自启
systemctl disable docker  禁用Docker开机自启
 systemctl restart docker 重新启动Docker服务
 docker info 查看Docker信息
 docker info | grep 'Docker Root Dir:'  查看docker info中具体key的信息
 ps -ef | grep docker  查看进程

在这里插入图片描述

5.镜像加速

cat <<EOF > /etc/docker/daemon.json
{
 "registry-mirrors": [
   "https://docker.mirrors.ustc.edu.cn",
   "http://hub-mirror.c.163.com"
 ],
 "max-concurrent-downloads": 10,
 "log-driver": "json-file",
 "log-level": "warn",
 "log-opts": {
   "max-size": "10m",
   "max-file": "3"
   },
 "data-root": "/var/lib/docker"
}
EOF

6. 镜像操作

docker pull hello-world  下载镜像
docker images 查看镜像
docker run hello-world  运行镜像
卸载镜像
docker image rm hello-world

在这里插入图片描述
显示容器正在使用

此时需要关闭容器
docker container re 52a
删除镜像
docker container rm hello-world
查看所有容器
docker ps -a

下载镜像(pull),如果本地镜像没有,则需要从远程镜像中下载

查看镜像历史
docker history hello-world
导出镜像文件
docker save  hello-world | gzip > hello-world.tar.gz  
导入镜像操作
docker load < hello-world.tar.gz  

导出镜像文件到images目录
在这里插入图片描述
此时只能在Linux系统使用,Windows下使用需要Download

7. 容器操作

创建并启动容器 打开交互模式
docker run -it centos:7 bash

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

删除容器
docker container rm 802 #802为容器id
强制删除
docker container rm -f 802 #802为容器id
清除所有容器
docker container prune

8. Docker数据管理实践

在容器中管理数据的方式 数据卷(Volumes)、挂载主机目录 (Bind mounts)

数据卷

命令:

查看数据卷目录 docker volume ls
创建数据卷  docker volume create container-vol
查看数据卷信息   docker volume inspect container-vol
删除数据卷 docker volume rm container-vol
在启动容器时,以目录直接挂载的方式进行数据操作  docker run -it -v container-vol:/cgb2107 centos:7 bash

在这里插入图片描述
挂载的目的是删除容器数据不丢,相当于备份,数据卷仍存在
在这里插入图片描述

挂载主机目录

docker run -it -v  /app:/container centos:7 bash

9. Dockerfile及镜像制作实践

在这里插入图片描述

创建Dockerfile文件

vim  Dockerfile编辑
FROM centos:7
ADD jdk-8u51-linux-x64.tar.gz /usr/local/docker
ENV JAVA_HOME=/usr/local/docker/jdk1.8.0_51 \
    PATH=/usr/local/docker/jdk1.8.0_51/bin:$PATH
CMD ['bash']

在这里插入图片描述

查看文件

在这里插入图片描述

在Dockerfile所在目录执行docker build指令

在这里插入图片描述

查看镜像

在这里插入图片描述

运行镜像、查看java版本 基于镜像启动容器

在这里插入图片描述

基于JDK镜像启动sentinel

在这里插入图片描述

docker run -d -p 8180:8080 --name sentinel \
-v /root/servers:/usr/sca \
jdk:8 java -jar /usr/sca/sentinel-dashboard-1.8.1.jar

在这里插入图片描述

在这里插入图片描述
sentinel运行在基于jdk:8容器的基础上,所以可以放在一起创建镜像
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9.镜像安装实践

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
进入容器登录mysql
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建目录和文件
在这里插入图片描述
创建redis实例并启动

在这里插入图片描述
在这里插入图片描述
拖入镜像
在这里插入图片描述
导入镜像
在这里插入图片描述
创建数据卷
在这里插入图片描述
启动nginx服务
在这里插入图片描述

在这里插入图片描述
访问成功
在这里插入图片描述
在这里插入图片描述

10. 容器互联实践

方案:
第一种:两个容器通过宿主机进行通讯(容器中的端口会映射到宿主机上)
第二种:两个容器之间直接通过虚拟网络进行连接,但是需要我们在docker中创建网络。

创建网络

docker network create t-net

在这里插入图片描述

docker run -it --name app1 --network t-net centos:7  启动容器

实现容器互联互联
在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Docker技术的原理是通过利用Linux内核的容器化功能来实现应用程序的隔离和封装。与传统的虚拟化技术相比,Docker并不是通过在操作系统上运行多个虚拟机来实现应用程序的隔离,而是在一个共享的操作系统内核上运行多个独立的容器Docker利用了Linux的命名空间和控制组等核心功能,通过隔离进程、文件系统、网络和用户空间等资源,实现了应用程序之间的隔离和资源的有效利用。每个Docker容器都是一个独立的运行环境,包含了应用程序及其依赖的所有组件,使应用程序可以在不同的环境中进行部署和运行。 Docker技术的核心是镜像和容器。镜像是一个只读的文件系统,包含了应用程序运行所需的所有文件和配置信息。容器则是根据镜像创建的一个运行实例,它可以被启动、停止、暂停和删除。多个容器可以共享同一个镜像,但每个容器都有自己独立的文件系统和运行环境。 Docker使用Docker Engine作为运行时引擎,它负责管理和执行容器Docker Compose是一个工具,用于管理多个容器组成的应用程序。通过Docker Compose可以定义和管理多个容器之间的关系和依赖关系,简化了多容器应用程序的部署和管理过程。 总之,Docker技术利用Linux内核的容器化功能,通过隔离和封装应用程序,实现了应用程序的快速部署、跨平台移植和资源的高效利用。通过Docker Engine和Docker Compose等工具,可以方便地管理和运行多个容器组成的应用程序。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Docker的原理,总结的真的全呀](https://blog.csdn.net/Liu_csdn_csdn/article/details/131031733)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Docker原理(图解+秒懂+史上最全)](https://blog.csdn.net/crazymakercircle/article/details/120747767)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值