docker 学习总结

article/2025/8/17 18:19:38

只要学不死,就往死了学。

docker学习目录

  • docker概述
  • docker安装
  • docker基本组成
    • 镜像命令
    • 容器命令
    • 操作命令
  • docker镜像
  • 容器数据卷
  • dockerFile
  • docker 网络原理
  • IDEA整合docker
  • docker composer
  • docker swarm
  • cI\cd

docker概述

  • 痛点:解决跨平台,服务器配置应用环境,需要每次重新配置
  • docker:打包装箱,每个箱子相互隔离
  • 容器内直接运行在 宿主机上,容器没有自己的内核;传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统
  • docker官网:https://www.docker.com/
  • docker 文档:https://docs.docker.com/

docker基本组成

  • 镜像(image):

docker镜像就好比是一个模版,可以通过这个模版来创建容器服务,tomcat镜像===》 run ===>tomcat01容器(提供服务器),通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的)

  • 容器(container):

docker 利用容器技术,独立运行一个或者一个组应用,通过镜像来创建
启动,停止,删除,基本命令
目前就可以把这个容器理解为简易的Linux系统

  • 仓库(repository)

仓库就是存放镜像的地方
仓库分为公有仓库和私有仓库

  • 安装查看官方安装文档

  • docker 判断是否安装成功:docker version

  • docker run hello-world 在docker 运行hello world

  • docker images 查看docker的镜像

  • docker 运行流程图:
    在这里插入图片描述

docker的常用命令

  • 帮组命令

docker version #显示docker的版本信息
docker info # 显示docker的系统信息,包括镜像和容器
docker 命令 --help # 帮助命令

  • 镜像命令

docker images 查看docker 镜像
docker seachr mysql. 搜索镜像
docker pull mysql [:tag]. 下载镜像
docker rmi (-f 镜像id) 删除镜像
docker rmi -f $(docker images -aq) 递归删除所有镜像

  • 容器命令

下载一个centos 镜像来测试学:docker pull centos

新建容器并启动:docker run [] image
参数说明:
–name =“Name” 容器名字
-d 后台运行
-it 使用交互方式运行,进入容器查看内容
-p 指定容器的端口
进入创建好的centos容器 :docker run -it centos /bin/bash
exit 从容器退出

docker ps 列出所有容器
-a 列出所有当前正在运行的容器
-n=? 显示最近创建的容器
-q 只显示容器的编号

退出容器
exit
ctrl + P +Q 容器不停止退出

删除容器
docker rm 容器id
docker rm -f $(docker ps -aq) 删除所有的容器

启动和停止容器的操作
docker start 容器ID. 启动容器
docker restart 容器ID
docker stop 容器ID
docker kill 容器ID

其他命令
docker run -d centos
docker run -d --name nginx01 -p 3344:80 nginx (–name 给容器起名字,-d 后台运行,-p 宿主机端口:容器内部端口)
docker ps 发现停止了,容器后台运行,就必须要有一个前台进程,docker 发现没有应用,就会停止
docker logs 查看日志
docker logs --help
docker logs -ft --tail 容器ID

docker logs -ft --tail 10 容器ID
docker run -d centos /bin/sh -c “while true;do echo mayuliang;sleep 1;done” 往容器中写日志
docker ps 查看当前启动的容器

查看容器中进程信息
docker top 容器ID

查看镜像的元数据
docker inspect 容器ID 查看容器的详细信息

进入运行的容器
docker exec -it 容器ID /bin/bash
docker attach 容器ID

  • 从容器中拷贝

进入容器创建一个文件
退出容器
docker cp 容器ID:/home/test.java /home

  • docker从容器中复制文件

docker cp 容器id:容器内路径 目的地主机路径
[root@iZ2zeg4ytp0whqtmxbsqiiZ /]# docker cp 7af535f807e0:/home/Test.java /home

  • 容器数据卷

直接使用命令来挂载 -v
docker run -it -v 主机目录:容器目录
[root@iZ2zeg4ytp0whqtmxbsqiiZ home]# docker run -it -v /home/ceshi:/home centos /bin/bash

安装tomcat

  1. docker pull tomcat 下载tomcat,并查看镜像
  2. docker run -d -p 3355:8080 --name tomcat01 tomcat. 创建一个容器,名字tomcat01,端口映射3355
  3. docker ps 可查看容器信息
  4. docker exec -it tomcat01 /bin/bash 交互方式进入
  5. cp -r webapps.dist/* webapps
  6. 进行运行 localhost:3355

安装MySQL

[root@iZ2zeg4ytp0whqtmxbsqiiZ home]# docker pull mysql:5.7
运行容器, 需要做数据挂载! # 安装启动mysql,需要配置密码(注意)
官方测试, docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

[root@iZ2zeg4ytp0whqtmxbsqiiZ home]# docker run -d -p 3344:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7
9552bf4eb2b69a2ccd344b5ba5965da4d97b19f2e1a78626ac1f2f8d276fc2ba

启动成功之后,我们在本地使用navicat链接测试一下
navicat链接到服务器的3344 — 3344 和 容器的3306映射,这个时候我们就可以连接上mysql喽!

dockerfile

  • 安装centos

docker build -f dockerfile1 -t centos:1.0 .
注意:最后一个点,是指当前目录
创建容器,并进入容器:docker run -it centos:1.0 /bin/bash

  • 多个容器,实现容器间的数据同步

docker run -it --name docker02 --volumes-from docker01 centos:1.0

  • 查看容器详细信息:

docker inspect 容器id

  • dockerFile是用来构建docker镜像的文件!命令参数脚本!

构建步骤

  1. 编写一个dockerFile文件
  2. docker build 构建成为一个镜像
  3. docker run 运行镜像
  4. docker push 发布镜像(DockerHub、阿里云镜像)
  • DockerFile指令说明
    在这里插入图片描述

FROM # 基础镜像,一切从这里开始构建
MAINTAINER # 镜像是谁写的, 姓名+邮箱
RUN # 镜像构建的时候需要运行的命令
ADD # 步骤, tomcat镜像, 这个tomcat压缩包!添加内容
WORKDIR # 镜像的工作目录
VOLUME # 挂载的目录
EXPOSE # 保留端口配置
CMD # 指定这个容器启动的时候要运行的命令,只有最后一个会生效可被替代
ENTRYPOINT # 指定这个容器启动的时候要运行的命令, 可以追加命令
ONBUILD # 当构建一个被继承DockerFile 这个时候就会运行 ONBUILD 的指令,触发指令
COPY # 类似ADD, 将我们文件拷贝到镜像中
ENV # 构建的时候设置环境变量!

  • 创建一个自己的centos

FROM centos
MAINTAINER mayuliagn707026500@qq.com
#定义一个环境变量
ENV MYPATH /usr/local
WORKDIR $MYPATH
#安装vim 和 net-tools
RUN yum -y install vim
RUN yum -y install net-tools
#保留端口配置
EXPOSE 80
CMD echo $MYPATH
CMD echo “----end----”
CMD /bin/bash

命令 docker build -f dockerfile文件路径 -t 镜像名:[tag] .

  • 查看容器变更历史:

docker history 4345eff398fa(容器id)

  • CMD 和ENTRYPOINT区别

CMD # 指定这个容器启动的时候要运行的命令,只有最后一个会生效可被替代
ENTRYPOINT # 指定这个容器启动的时候要运行的命令, 可以追加命令

dockerhub

  • 创建dockerhub账号:
  • 发布一个repository
  • 推送一个tag到docker hub上

docker push 707026500/docker-repository:tagname

弱小和无知不是生存的障碍,傲慢才是。


http://chatgpt.dhexx.cn/article/fL68pNoS.shtml

相关文章

Docker学习总结

Docker学习总结 一、Docker简介二、Docker安装2.1 安装步骤2.2 卸载Docker2.3 配置阿里云镜像加速 三、Docker常用命令3.1 帮助命令3.2 镜像命令3.3 容器命令3.4 其他常用命令 四、Dockerfile4.1 DockerFile简介4.2 DockerFile体系结构(保留字指令)4.3 案例4.3.1 Base镜像(scra…

Docker学习

理念:一次镜像,处处运行。是基于go语言实现的云开源项目 容器与虚拟机的区别: 虚拟机是一种带环境安装的解决方案,可以在一种操作系统中运行另外一种操作系统。 容器不是模拟一整个操作系统,而是只有软件所需要的库资…

一文带你入门docker

✅作者简介:我是18shou,一名即将秋招的java实习生 🔥系列专栏:牛客刷题专栏 📃推荐一款模拟面试、刷题神器👉 [在线刷题面经模拟面试](在线面试刷题) 目录 安装Docker 卸载旧版本 Docker初装命令 Dock…

超全的Docker学习教程(Linux云计算从入门到精通)

CONTENTS 一、docker简介 1.1 docker相关概念 1.2 docker应用场景 1.3 docker和虚拟机比较 二、初识docker 2.1 安装docker 2.2 初识docker-docker架构 2.3 配置镜像加速器 三、docker命令详解 四、docker容器数据卷 五、docker应用部署 5.1 部署mysql 5.2 部署Tom…

Docker 从入门到精通(新手建议收藏的教程)

今天给大家分享一篇小白也能看懂的Docker入门到精通学习教程,篇幅较长,但内容很干,值得认真看完! 目录 一 、容器简介 二、什么是 Docker? 三、安装Docker Docker 从入门到精通(新手建议收藏的教程&am…

Docker入门教程(详细)

目录 一、Docker概述 1.1 Docker 为什么出现? 1.2 Dorker历史 1.3 能做什么 虚拟机技术:(通过 软件 模拟的具有完整 硬件 系统功能的、运行在一个完全 隔离 环境中的完整 计算机系统) 容器化技术:(容…

docker入门,这一篇就够了。

Docker入门,这一篇就够了。 Docker容器虚拟化平台。 前言 接触docker很长时间了,但是工作中也没有用到,所以总是学了忘,忘了学。不过这次,我打算跟大家分享一下我的学习历程,也算是我的独特的复习笔记&…

总线板卡(1)——总线接口类型

行业的朋友们是否碰到过这种情况,比如你问某厂家是否有1553B总线或者其他总线板卡时,对方会问你要什么接口的? 你知道厂家说的接口指的是什么吗? 这里的接口一般指板卡的总线接口,比较普遍的有PCI、PCIe、CPCI、PXI等…

6U VPX架构XCKU115(FPGA)+XCZU9EG(MPSOC)+TMS320C6678(DSP)的高速信号处理平台VPX630设计原理图及调试经验分享

板卡概述VPX630 是一款基于6U VPX 总线架构的高速信号处理平台,该平台采用一片Xilinx 的Kintex UltraScale 系列FPGA(XCKU115)作为主处理器,完成复杂的数据采集、回放以及实时信号处理算法。采用一片带有ARM 内核的高性能嵌入式处…

flexray VPX控制板设计方案详细

后IO板 1设计要求1.1功能要求3U VPX通讯板具有4路CAN,2路 Flex Ray、1路SGMII网口、2路RapidIO2、2路PCIE4、2路IPMI接口 整个处理模块系统框图如下: 图1 系统框图 根据上图,模块可以分为以下几个部分: CAN协议模块&#xff1a…

嵌入式高速串行并行技术_推荐(张锋)

前言 之前想学习一下总线相关的知识,就去图书馆搜,其中,有一本是:《嵌入式高速串行并行技术——基于FPGA实现与应用(张锋著)》 看了一下前言、目录、自序、以及他本书创作过程中的随笔(小编就决…

加固机箱设计资料第289篇:基于3U VPX的 5槽加固机箱

基于3U VPX的 5槽加固机箱 一、产品简介 VPX-305 机箱平台是4U高度 3U 5S的一种便携式VPX机箱。由北京太速科技研发,机箱提供1个VPX总线系统槽和4个VPX 外设槽。主要用于组建VPX测试系统。整机美观大方、小巧灵活、安全可靠。可用于外场测试。 VPX-30…

VPX加固机箱学习资料第289篇:基于3U VPX的 5槽加固机箱

基于3U VPX的 5槽加固机箱 一、产品简介 VPX-305 机箱平台是4U高度 3U 5S的一种便携式VPX机箱。机箱提供1个VPX总线系统槽和4个VPX 外设槽。主要用于组建VPX测试系统。整机美观大方、小巧灵活、技术先进、安全可靠。可用于外场测试。 VPX-305采用工业级3U300W的C…

基于龙芯+国产FPGA 的VPX以太网交换板设计(二)

3.1 板卡技术要求 3.1.1 主要性能指标 本着向下兼容的原则,以太网交换板的设计尽量保留传统信息处理平台的基本功 能和接口,重点考虑提升设备的性能和扩展性。本课题以太网交换板的主要性能指标 如下: ( 1 ) 具…

3U VPX板卡设计

最近设计了一块3U VPX CPU板卡,具体硬件设计过程如下: 1:首先了解3U VPX的相关标准,包括板卡尺寸,接插件定义等等; 2:确定板卡要实现的功能,此板卡包含1553B、RS422、CAN总线、IO输入…

基于6U VPX架构的6槽标准VPX机箱

VPX6100是北京青翼科技的一款基于6U VPX总线架构的高性能、高可靠性的应用系统平台,支持VPX、OpenVPX协议标准。该系统平台采用高性能6槽6U VPX背板,高度优化的拓扑结构,能够为用户提供各种高速串行总线的互联,该平台支持标准VPX插…

基于龙芯+国产FPGA 的VPX以太网交换板设计(三)

调试与测试是本系统设计实现的重要环节。单板调试主要包括各单元电路和接口 的调试,主要通过查看信号波形和运行软件对每个功能进行测试。本章将设计一系列 的调试和测试方案来验证电路设计的正确性。 6.1 电路板静态检查 经过原理图设计、印制板设计、制造、印…

什么是VPX技术?

北京太速科技有限公司 自主研发VPX板卡 http://www.orihard.com/ 欢迎关注 新型VPX(VITA 46)标准是自从VME引入后的25年来,对于VME总线架构的最重大也是最重要的改进。它将增加背板带宽,集成更多的I/O,扩展了格式布局。 目前,VME64x已经不能满足国防和航空领域越来越高…

6U VPX 电源产品学习资料第411篇:基于6U VPX的700W/1400W 电源产品

基于6U VPX的700W/1400W 电源产品 1400W六路输出AC-DC 6U VPX电源 一、功能指标 1.完全符合VITA62 6U 标准 2. 交流宽电压输入85V-264VAC. 3. 输入与输出隔离电压2000V. 4. 高效率≥86%(220V),≥83%&…

【VS开发】【电子电路技术】VPX技术介绍

VPX技术介绍 杨跃江 2009-12-18 杨跃江 13902479857 中科祥云(深圳)信息产业有限公司 1VPX 技术 新型VPX(VITA 46)标准是自从VME引入后的25年来,对于VME总线架构的最重大也是最重要的改进。它将增加背板带宽,集成更多的I/O&#x…