docker基础

构建自己的docker基础镜像 构建一个完全定制的基础镜像意味着您需要从一个非常小的镜像(例如scratch镜像)开始,然后逐步添加您需要的所有内容。scratch镜像是一个空白的基础镜像,可以用来创建高度定制的容器环境。 阅读详情

 

docker官网:https://docs.docker.com/engine/install/centos/

 

1.安装docker

官网内有详细安装步骤,以下安装环境为centos7

1.卸载旧版本

$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

2.安装yum-utils软件包(提供yum-config-manager 实用程序)并设置稳定的存储库。

$ sudo yum install -y yum-utils

$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

3.安装DOCKER引擎

$ sudo yum install docker-ce docker-ce-cli containerd.io

4.启动Docker

$ sudo systemctl start docker

5.验证docker,如果下载hello world镜像失败,可参考:https://www.cnblogs.com/nthforsth/p/12257755.html

$ sudo docker run hello-world

2.使用Dockerfile构建镜像

2.1 Dockerfile语法

可参考网址:https://github.com/docker-library

FROM

引用一个基础镜像,安全起见,尽量使用官方的image作为基础镜像

FROM centos

LABEL

定义image的基础信息,有点类似代码中的注释

RUN

运行命令的关键字,每一个RUN一句就是一层,建议使用 \ 连接语句,避免无用分层。

执行命令并创建新的 Images Layer

RUN yum update && yum install -y vim \
    python-dev

WORKDIR 

WORKDIR /root

设定当前目录为工作目录,如果该目录会自动创建

ADD and COPY

添加本地文件到image,COPY优于ADD,ADD除了COPY之外还有解压的功能

ADD hello /   #把hello添加到image下

ENV

设置常量,可以增加Dockerfile的可维护性

ENV mysql 5.6

CMD

1.设置容器启动后默认执行的命令和参数

2.如果docker run指定了其他命令,CMD命令会被忽略

3.如果定义了多个CMD,最后一个会被执行

ENTRYPOINT

1.设置容器启动后默认执行的命令

2.让容器以应用程序或者服务的形式运行

3.一定会被执行,不会被忽略

 

2.2 容器的常用命令

docker --help 查看所有的命令

以下为常用命令:

docker run 镜像ID                    生成一个容器

docker exec -it 容器ID bash     进入一个容器

docker stop 容器ID                  停止容器

docker restart 容器ID               重启容器

docker logs 容器ID                   查看容器日志

docker stats 容器ID                  查看容器的cpu以及其他状态

docker inspect 容器ID              查看容器详细信息

 

2.3 容器的资源限制

docker run --help   查看所有的限制

 

3. docker的网络

3.1 查看docker的网络

[root@promote ~]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
d3ceaeeae4f2        bridge              bridge              local
093d57f23353        host                host                local
4c8ebd61dd4a        none                null                local

详细信息参见:https://blog.youkuaiyun.com/HCY_2315/article/details/103927400

 

docker容器之间的通信:

 

使用命令即可查看:

[root@promote ~]# brctl show
bridge name	bridge id		STP enabled	interfaces
docker0		8000.02429601b796	no		veth1498116
							veth41f2d5e

 brctl安装:

[root@promote ~]# yum install bridge-utils

 

3.2 容器之间link

启动容器时,使用 --link ,可以在容器的 /etc/hosts 下面自动增加配置

如,执行命令:

docker run -d --name test3 --link test1 centos /bin/sh -c "while true; do sleep 3600; done"

进入test3容器,可以直接 ping test1

sh-4.4# ping test1
PING test1 (172.17.0.2) 56(84) bytes of data.
64 bytes from test1 (172.17.0.2): icmp_seq=1 ttl=64 time=0.457 ms
64 bytes from test1 (172.17.0.2): icmp_seq=2 ttl=64 time=0.075 ms
^C
--- test1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 2ms
rtt min/avg/max/mdev = 0.075/0.266/0.457/0.191 ms

查看  /etc/hosts 文件

不过在test1则不能直接  ping test3

 

3.3 容器的端口映射

把docke人的端口映射到外面以供访问 

-p [容器端口] : [宿主机端口]

例子:docker run --name web -d -p 5000:5000 imagesID

 

【Docker】- Dockerfile和Docker Compose 基础配置 Dockerfile + Docker compose 就可以实现,方便、优雅,我们先了解两个配置的基础配置。是 Docker 构建镜像的脚本文件,它包含了一系列指令,用于定义容器的环境、安装依赖、复制文件、配置启动命令等。Docker Compose 是 Docker 官方提供的一个工具,可以使用 YAML 文件(用于指定持久化数据的目录,避免数据因容器删除而丢失。如果你的服务需要从源码构建镜像,可以使用。设置容器内运行进程的用户,避免使用。,并不会真正开放端口,容器仍需。设定容器终止时的信号,默认。 阅读详情

相关推荐

【Docker】docker基础命令和DockerFile

需要注意的是,上下文路径下不要放无用的文件,因为会一起打包发送给docker引擎,如果文件过多会造成这个过程缓慢的问题。sudo docker run -it --name 容器名字 --restart=always 镜像:标签 /bin/bash -c "/home/test/start.sh /home/test/"sudo docker run -it --name 容器名字 --restart=always 镜像:标签 /bin/bash -c "/home/test/start.sh"

静谧、淡雅 1576

【Docker】Docker基础

Docker是一个开源的容器化平台,通过虚拟化技术实现应用的高效部署和运行。相比传统虚拟机,Docker容器更轻量级,启动更快(秒级),资源占用更少(MB级)。其核心优势包括: 环境标准化:通过镜像打包应用及其依赖,确保开发、测试、生产环境一致性 快速部署:镜像仓库(如Docker Hub)支持一键获取和运行应用 资源隔离:利用Linux内核的Namespace和Cgroups技术实现进程、网络等隔离 弹性伸缩:可根据业务需求动态调整资源 Docker采用客户端-服务器架构,核心组件包括: 镜像(Image

2401_82610555的博客 8029

【docker】docker 实现 的基础

1.概述 还不懂Docker?一个故事安排的明明白白!

九师兄 366

如何选择Docker基础镜像

如何选择Docker基础镜像 镜像官网 操作系统基础镜像 busybox Alpine CentOS Ubuntu Debian 编程语言基础镜像 Java基础镜像 Python基础镜像 NodeJs基础镜像 应用基础镜像 Nginx基础镜像 Tomcat基础镜像 Jetty基础镜像 其它基础镜像例子 Maven基础镜像 Jenkins基础镜像 GitLab基础镜像 ...

锐意工作室 3万+

数据仓库实践:从ITR流程讲指标体系建设

从 ITR 流程或者其他客服反馈流程的考核过程可见,实际工作中不可能只通过单个指标评价一个业务过程,需要从多个维度梳理业务,并把多个高度相关的指标组织起来,以避免只考虑其中某个指标从而摧毁整个业务过程的结果,指标体系=指标+体系。

the_singing_towers的博客 2268

ros2 humble cartographer 2D激光雷达建图

Cartographer是一个支持多平台和传感器配置的SLAM的系统。 本文主要讲述在ros2 humble系统上cartographer的安装方法,以及如何配置参数实现自己的ros2 bag包的离线建图。

weixin_43087302的博客 6939

docker容器基础

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

冲击 281

Linux单独编译设备树,开发者分享 | Petalinux 工程中设备树的介绍

本文来自XILINX嵌入式产品应用工程师 Terry Ni设备树是 Petalinux kernel 的关键组件,接下来以 2020.1 版本为例,为大家介绍一下在Xilinx Petalinux 工程中的设备树是如何产生,配置以及修改的。Petalinux 工程中设备树的位置当我们创建了一个 petalinux 工程后(以zcu102为例),在编译的时候,会自动生成对应的设备树文件。这些设备树的...

weixin_28877107的博客 2609

Docker学习(2)——Docker基础命令的讲解

记住:容器是基于镜像的,就像虚拟机也是基于镜像一样的 1.常用的Docker基础命令总结 命令格式 作用 docker load -i ubuntu.tar 导入镜像(以ubuntu镜像为模板) docker run -it --name vm1 ubuntu 创建容器(以ubuntu镜像为模板) docker ps 查看容器状态,当前活跃的 docker ps -a ...

ymeng9527的博客 638

DICOM标准:DICOM医学影像中的覆盖层(Overlay)概念详解

DICOM标准:深入详解DICOM医学影像中的覆盖层(Overlay)

编程技术探索者,分享C/C++、C#、Java、数据库等开发经验,聚焦实战技巧与AI兴趣,助力编程爱好者成长。 1564

PCL DBSCAN密度聚类【2026最新版】

点云密度聚类的PCL代码实现,与matlab自带的密度聚类算法进行对比验证,结果一致。3万多个点能再2秒左右运行出结果,算法效率尚可。

点云侠的博客 5682

docker基础学习指令

零基础入门docker常用指令

qq_44843371的博客 1503

白皮精读:70页 2025 基于数据空间的金融数据可信流通研究报告【附全文阅读】

金融数据可信流通面临法规、技术与商业模式的挑战。报告分析国内外发展现状,提出基于数据空间的可信流通框架,包含典型场景、技术方案与流通模式。实践案例显示,隐私计算、区块链等技术可提升风控效率与合规性。建议完善数据分类分级、统一技术标准并推动行业试点,以释放数据要素价值,促进数字经济发展。

cdfunlove的博客 850

docker部署与基础镜像准备

docker下载地址: https://get.docker.com/builds/Linux/x86_64/docker-1.13.1.tgz docker的rpm包下载网址: http://yum.dockerproject.org/repo/main/centos/7/Packages/ ##docker中文网址: http://www.docker.org.cn/thread/126.html ##docker官网文档库: https://docs.docker.com/engine/

2020xyz的博客 1707

ROS入门教程(七)—— Gazebo与RViz联合仿真

通过Gazebo与RViz联合仿真实现机器人运动。

吾门的博客 1万+

OCR技术解析:用Tesseract和PaddleOCR识别文本

OCR技术解析:用Tesseract和PaddleOCR识别文本 ,人工智能,计算机视觉,大模型,AI,光学字符识别(Optical Character Recognition,简称 OCR)是一项将图片、扫描件等文档中的文字信息转换为可编辑文本的技术。在数字化时代,OCR 技术广泛应用于文档处理、车牌识别、身份证识别、古籍数字化等领域,极大地提高了文字信息处理的效率。Tesseract 和 PaddleOCR 是两款极具代表性的 OCR 工具。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 3万+

Docker基础——快速掌握

通常镜像仓库分为公共镜像仓库和私有镜像仓库。私有镜像仓库则是指部署在公司或组织内部,主要用于自身应用Docker镜像存储、分发的镜像仓库。登录好后,就可以推送镜像到自己创建的仓库了,在本地推送到自定义仓库前,我们需要使用docker tag命令将镜像“重命名”。镜像是通过 Dockerfile 构建的,Dockerfile 是一个文本文件,包含了一系列指令,用于定义如何构建镜像。公共镜像仓库一般是 Docker 官方或者其他第三方组织(腾讯云,阿里云等)提供的,允许所有人注册和使用的镜像仓库。

AnnyYoung的后花园 419

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Docker基础

Docker基础 学习目标: 掌握Docker基础知识,能够理解Docker镜像与容器的概念 完成Docker安装与启动 掌握Docker镜像与容器相关命令 掌握Tomcat Nginx 等软件的常用应用的安装 掌握docker迁移与备份相关命令 能够运用Dockerfile编写创建镜像的脚本 能够搭建与使用docker私有仓库 能够部署微服务项目 1 Docker简介 1.1 什么是虚拟化 在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、

zhoudahai007的博客 1022

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

docker简介、安装、基础知识

Docker的出现使我们开发的软件可以“带环境安装”,即安装的时候,可以把原始环境一模一样的复制过来,在自己的机器上可以运行,在别人的机器上也可以运行。Docker镜像是分层的,而如果每次传输都使用全量文件(所以用ftp的方式并不适合),显然不经济,必须提供识别分层传输的机制,以层的UUID为标识,确定传输的对象。解析:指定镜像作者信息,即镜像的Author属性。4.Docker是一个轻量级的容器,我们可以把环境交给Docker管理,当我们需要移植我们的产品的时候,就可以将环境整个的迁移到另一台主机上。

2301_82330629的博客 5万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

docker基础快速入门:基础命令、网络、docker compose工具

快速熟悉docker基本命令、docker网络、docker compose工具

alterhz的博客 1352

Docker基础(头哥)

Docker基础实战教程一:入门 第1关 Hello Docker docker pull busybox:latest docker run --name first_docker_container busybox:latest echo "Hello Docker" 第2关 拉取镜像 docker pull busybox:1.27 第3关 启动一个容器 #创建并启动一个容器,容器名为firstContainer,具备busybox的运行环境。并输出hello world #拉取busybox最新

qq_42718098的博客 2万+

【Docker】基于系统iso构建docker基础镜像

基于系统iso镜像构建docker基础进行

WEL测试 5510

Docker基础 镜像

例如,第一步中需要的Linux运行环境,通用性就很强,所以Docker官方就制作了这样的只包含Linux运行环境的镜像。由于制作镜像的过程中,需要逐层处理和打包,比较复杂,所以Docker就提供了自动打包镜像的功能。之前我们说过,镜像之所以能让我们快速跨操作系统部署应用而忽略其运行环境、配置,就是因为镜像中包含了程序运行需要的系统函数库、环境、配置、依赖。但需要注意的是,镜像文件不是随意堆放的,而是按照操作的步骤分层叠加而成,每一层形成的文件都会单独打包并标记一个唯一id,称为。

m0_59281987的博客 1216

Docker—03基础使用

接上回我们已经对docker进行完了基本配置,接下来就该熟悉docker的一些基础命令了。本文介绍了 Docker 的基础使用,包括基础命令、镜像命令和容器命令。通过基础命令,我们可以管理 Docker 的运行环境和镜像库;通过镜像命令,我们可以构建、导入、导出和删除镜像;通过容器命令,我们可以创建、启动、停止和删除容器。掌握这些基础使用,可以更好地利用 Docker 实现应用程序的打包、迁移和运行,提高开发和部署的效率。

lw1558533893的博客 834
上一篇: hbase踩坑记录(二):Can not resolve promote.cache-dns.local, please check your network
下一篇: java多线程与自定义线程池
Yuwen_forJava
博客等级 码龄9年 28粉丝 90原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值