Docker学习

Docker打包深度学习项目 无 阅读详情

Docker学习

博客搬家到 https://tifinity.github.io/ 啦

准备Docker环境

安装Docker:

  • Community Edition CE 社区版

  • Enterprise Edition EE 企业版

我们就安装社区版。

避免每次执行docker命令时sudo,将当前用户加入docker用户组,参见Docker官方文档。

sudo groupadd docker
sudo usermod -aG docker $USER

重启电脑 或者执行 newgrp docker 激活对组的更改。

Docker是CS架构,与MySQL一样,需要本机启动服务:

sudo service docker start
sudo systemctl start docker

执行docker version检查版本信息。

在这里插入图片描述

镜像 Image

查看本地所有镜像:

# 列出本机的所有 image 文件。
docker image ls
# 或者
docker images

在这里插入图片描述

修改默认仓库:

官方仓库的下载速度可能比较慢,所以我们可以修改为国内镜像仓库。

打开/etc/default/docker加上:

DOCKER_OPTS="--registry-mirror=https://registry.docker-cn.com"

然后重启docker服务

sudo service docker restart

其他

在默认仓库搜索镜像:

docker search <name>

拉取镜像:

docker pull <name+tag>

容器 Container

镜像与容器就像程序与进程。

运行第一个image,hello-world:

docker run hello-world

Dokcer会在本地目录/var/docker/image查找要运行的镜像文件,如果没有会自动从DockerHub下载。

在这里插入图片描述

hello-world做的事情就是简单输出一些信息,然后就自动中止。

运行另一个镜像:

# --rm表示容器退出时自动删除,-it会创建一个虚拟终端让你可以在容器内进行操作。
docker run --rm -it pytorch/pytorch

在这里插入图片描述

其他

# 显示运行中的容器
docker ps
# 显示所有容器(包括中止的)
docker ps -a
# 重启容器
docker restart <name>
# 进入正在运行的容器,在容器中使用exit退出
docker attach <name>

描述文件 Dockerfile

Dockerfile就像Makefile。

这是一个Danjgo后端的Dockerfile。

FROM python:3.6
ENV DATABASE_USERNAME xxx
ENV DATABASE_PASSWORD xxx
ENV DATABASE_ADDRESS xxx
ENV DATABASE_PORT xxx
ENV REDIS_HOST xxx
ENV REDIS_PORT xxx
WORKDIR /tifinity/backend
ADD . /tifinity
RUN pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -r ../requirements.txt
EXPOSE 9003
ENTRYPOINT ["python3", "manage.py", "runserver","0.0.0.0:9003"]

  • FROM:一般构建一个image是在一个已有的image上添加层,FROM 后面的参数表示指定基础镜像,可以用scratch来指定空白镜像。
  • ENV:设置容器内环境变量。
  • ADD:复制文件到工作目录下。
  • COPY:同ADD,只是不支持自动下载和解压。
  • WORKDIR:指定工作目录。
  • VOLUME:设置卷,挂在主机目录。
  • RUN:构建镜像时执行的命令。
  • EXPOSE:开放给外部的端口。
  • ENTRYPOINT:入口点,运行容器时执行的命令。
  • CMD:运行容器之后执行的命令。

执行:

# -t参数指定镜像名
docker build -t test

新的test镜像就构建好了。

目前只会最基础的使用,还在学习中。

Dockerfile官方文档

Docker compose

安装docker-compose工具

由于墙的存在,crul太慢,所以使用pip方式a安装

Ubuntu下:

sudo apt install python-pip
sudo pip install docker-compose
docker-compose --version

在这里插入图片描述

docker-compose根据目录下的.yml文件管理多个docker容器之间的关系,组成一个应用。

比如下面这个mysql+wordpress的例子:

# test.yml
mysql:
    image: mysql:5.7
    environment:
     - MYSQL_ROOT_PASSWORD=tianHAOyuQI361
     - MYSQL_DATABASE=wordpress
web:
    image: wordpress
    links:
     - mysql
    environment:
     - WORDPRESS_DB_PASSWORD=tianHAOyuQI361
    ports:
     - "127.0.0.3:8080:80"
    working_dir: /var/www/html
    volumes:
     - wordpress:/var/www/html

启动:

# 启动所有服务
$ docker-compose up
# 关闭所有服务
$ docker-compose stop

IPAddress

一个基于wordpress的简单博客网站就可以使用了,本地访问。

在这里插入图片描述

DockerHub

与github很像,image文件最常用的仓库,docker pull 下来的image放在 /var/docker/image。

Docker存储

还需要学习

Docker网络

还需要学习

『docker笔记』通过docker搭建深度学习环境 通过docker搭建深度学习环境! 文章目录一. docker简介二. centos安装docker第一步2.1. 安装前提条件2.2. 安装docker依赖环境2.3. 添加阿里云的软件源2.4. 更新yum缓存(为了保证能更新和下载需要的服务:如docker)三. centos安装docker第二步3.1. 安装并启动docker3.2. 启动Docker服务3.3. 设置开机自启四. docker高效搭建开发环境五. 关于宿主机卸载docker服务参考文章 一. docker简介 docker 是 阅读详情

相关推荐

人工智能训练师技能等级认定四级技能考核试卷-样题4

本文为人工智能训练师四级技能考核试卷,包含六个实操考核项目,总时长150分钟。考核内容涵盖:1)车牌数据集规范评估与格式处理;2)车牌数据集采集代码修改与数据处理;3)房价预测数据集加载、预处理与可视化分析;4)车牌标注数据集审核与修正;5)螺丝螺母检测数据集的平台创建与共享;6)螺丝螺母数据的去噪处理与标注优化。要求考生使用Python编程、数据处理平台和标注工具完成各项任务,重点考察数据加载、格式转换、缺失值处理、数据可视化、标注审核及平台操作等技能。所有操作需在配备Python3.7和深度学习平台的W

weixin_42221934的博客 348

Docker快速入门小记

从实际需求学习docker,整理了docker常用命令以及一些关键技术究竟如何使用

Miracle8070 2591

EDA开源仿真工具verilator入门4:访问函数介绍

访问函数(Visitor Function)是verilator算法实现的主要工作方式之一,本节将介绍一下访问函数。

fangfanglovezhou的博客 1075

docker命令每次需要sudo操作解决方案

转自:https://blog.youkuaiyun.com/dwh444/article/details/52451936操作步骤如下1.创建docker组:sudo groupadd docker2.将当前用户加入docker组:sudo gpasswd -a ${USER} docker3.重启服务:sudo service docker restart4.刷新docker成员:newgrp - doc...

游语 3740

能碳双控| AIRIOT智慧能碳管理解决方案

基于AIRIOT打造的智慧能碳管理平台解决方案结合大数据、物联网、人工智能(AI)、数字孪生等新一代信息技术,通过整合碳达峰、碳中和、实时碳价、碳配额和碳资产等多个模块,为组织提供了全方位、灵活且智能的碳资产管理解决方案,有助于实现碳管理目标、提升可持续性,并适应碳市场的不断变化。

AIRIOT的博客 1808

BMS应用软件开发 — 7 从特斯拉到问界:主流BMS硬件架构深度解析

本文深度解析了从特斯拉Model 3到问界M5的主流BMS硬件架构,探讨了BMS在电动汽车中的核心价值与应用软件开发的关键技术。通过对比分析两家厂商的硬件设计哲学、芯片选型策略及成本控制方法,揭示了BMS硬件系统如何影响电池性能与整车安全。文章特别分享了电压采样精度、EMC设计等实战经验,为BMS开发提供宝贵参考。

weixin_42554408的博客 456

newgrp docker需要每次刷新问题

每次都需要运行 newgrp docker 的原因: 当用户被添加到 docker 组后,当前会话并不会立即更新组信息,因此需要通过。这样每次打开终端时,脚本会自动检查并切换到 docker 组。,可以在终端中配置一个自动刷新的脚本。切换到新的用户组以使权限生效。如果不想每次都手动运行。

我的博客 836

从零组装电赛送药小车:OpenMV视觉核心+STM32控制,我的软硬件联调全记录

本文详细记录了从零构建电赛智能送药小车的全过程,重点解析了OpenMV视觉识别与STM32控制的深度协同方案。通过硬件选型对比、通信协议设计、PID调参等实战经验,解决了巡线精度、十字路口识别等核心问题,最终实现稳定可靠的送药小车系统,助力电子设计竞赛取得优异成绩。

weixin_42641741的博客 447

【工作向】docker常用命令汇总

docker命令,镜像操作,容器操作,日志,数据拷贝,挂载,参数使用等

shuaixio的博客 612

保姆级教程:在RK3568上调试RGMII网口,从设备树到PHY驱动的完整避坑指南

本文提供RK3568开发板上RGMII网口调试的完整指南,涵盖硬件检查、设备树配置、驱动加载及性能优化。通过详细步骤和实战案例,帮助开发者避开常见陷阱,确保以太网功能稳定运行,特别关注PHY驱动和MDIO总线的调试技巧。

weixin_26821003的博客 322

badusb详细制作教程(两种方式实现远控)

badusb是一种几乎可以突破任何杀毒软件和防火墙的设备,堪称渗透测试利器 文章目录前言一、什么是badusb?二,badusb的优点三,badusb是如何攻击的?badusb原理HID攻击漏洞产生原因三、准备步骤1.设备2,编辑器的安装与设置四,编写代码(重点)第一种: SEToolkit + badusb实现PowerShell注入攻击第二种:Cobalt Strike + badusb 实现PowerShell注入攻击五,烧录六,badusb有多强大攻击场景总结 BadUSB是《黑客军团》中

Ghost_system的博客 1万+

Docker学习过程中遇到的问题1(解决docker权限问题)

在(菜鸟教程)上学习Docker,在为Docker配置加速器之后,想检验一下加速器是否生效,执行了下面的命令:docker info ,结果报错了,如下图所示: 解决方案: sudo groupadd docker #添加docker用户组 sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中 newgrp docker #更新用户组 docker ps #测试docker命令是否可以使用sudo正常使用 执行完上面几步后,再次执行

liyuanjunfrank的博客 715

lammps蒙特卡洛MC模拟案例

在lammps中,和MC相关的模拟命令有三个:fix gcmc、fix atom/swap、fix sgcmc。在一个lammps模拟中,mc和md可同时存在,间隔运行,所以设置fix sgcmc命令的同时,可以同时设置系综(nve、nvt或者npt)。lammps官网自带案例中也有一个fix sgcmc的案例,主要模拟FeCu合金的MC建模。sgcmc命令可应用到合金的模拟中,如短程有序模拟。MC运行间隔为100步,最终的浓度比例为0.02,也就是2%的Fe原子交换为Cu原子。大家好,我是小马老师。

lammps_jiayou的博客 1825

Docker | 深度学习中的docker看这一篇就够啦

Docker是一种相对使用较简单的容器,我们可以通过以下几种方式获取信息:1,通过docker run执行命令,或许返回信息2,通过docker logs去获取日志,做有针对性的筛选3,通过systemctl status docker查看docker服务状态4,通过journalctl -u docker.service查看日志。

weixin_44649780的博客 9061

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

docker学习之路

docker学习之路本文章主要讲解什么是docker,为什么要使用docker、docker与虚拟机有什么区别、docker要怎么学习,具体用法不在此处说明什么是docker为什么要使用dockerdocker与虚拟机有什么区别docker要怎么学习 本文章主要讲解什么是docker,为什么要使用docker、docker与虚拟机有什么区别、docker要怎么学习,具体用法不在此处说明 什么是docker Docker是一个基于LXC技术之上搭建的Container*容器引擎*。Docker将应用程序

qq_34892981的博客 219

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

学习docker需要linux吗

我整理的一些关于【Docker】的项目学习资料(附讲解~~)和大家一起分享、学习一下:https://d.51cto.com/xltfov学习 Docker 需要 Linux 吗? 引言 Docker 是一个开源的平台,用于自动化部署、扩展和管理应用程序。Docker 的强大之处在于它提供了一种轻量级的虚拟化方式,使得应...

weixin_37036882的博客 134

温度PID控制PLC程序

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

Docker学习笔记:如何快速并系统的学习Docker

Docker是一个开源的容器化平台,它可以将应用程序及其依赖项打包到一个称为容器的独立单元中。每个容器都包含了运行应用程序所需的所有组件,包括代码、运行时环境、系统工具和系统库。这使得应用程序可以在任何环境中以相同的方式运行,无论是开发、测试还是生产环境。

超哥量化的博客 1163

docker学习

综上:Docker是容器技术的核⼼、基础,用于创建管理容器,Docker Compose是⼀个基于 Docker 的单主机容器编排⼯具,⽽ Kubernetes 是⼀个跨主机的集群部署⼯具。4、如果需要,可以使用 docker push 命令发布镜像到镜像仓库(DockerHub 、阿里云仓库等)。介绍:通过编写compose.yaml文件用于批量处理容器(上线、下线、启动、停止、扩容)。2、使用 docker build 命令运行脚本文件,构建成为一个镜像;特点:加速构建、分享、运行应用。

weixin_62734196的博客 1194

docker学习文档

在部署实操完后,对操作过程中涉及到的内容进行梳理,方便后续回顾

qq_45511700的博客 1084

Docker学习系列(零):docker学习资源

docker中文该网站给出了大量的docker学习资源!一小时Docker教程 Docker手册 Docker ppt优快云之docker知识库:该网站有一些关于docker的讨论cSphere Docker 实训课程登陆后可以免费观看,课程网址:https://csphere.cn/training 同时,还有课程内容记录的文档,文档地址:http://git.oschina.net/do

tina的博客 2569

docker 训练深度学习_Docker 与深度学习

Docker与深度学习 【编者的话】这篇文章介绍了Docker与深度学习结合的例子。Docker的优势是解决了依赖的问题,方便分发个人工作成果;缺点是不直接支持GPU,需要开发者自己安装nvidia-docker。 Docker提供了一种将Linux Kernel中需要的内容静态链接到你的应用中的方法。Docker容器可以使用宿主机的GPUs,因此我们可以把TensorFlow或者机器学习代码的任...

weixin_42525798的博客 841

Docker学习网站

https://yeasy.gitbook.io/docker_practice

qq_44168533的博客 626

前端需要学习 Docker 吗?

Docker 是一个开源的应用容器引擎,它可以将应用程序及其依赖项打包到一个可移植的容器中,实现应用的快速部署、隔离和运行。是否学习 Docker 对于前端开发者来说,需要综合考虑项目的实际需求、个人的职业规划以及学习成本等因素。在技术不断发展的今天,保持学习和探索的态度,根据具体情况做出明智的选择,将有助于提升自身的能力和项目的质量。

yan1915766026的博客 1167

如何学习docker

学习Docker前,需要了解Docker的基本概念和组成部分,包括Docker镜像、Docker容器、Docker仓库、Docker网络等等,同时也需要了解Docker的整体架构和工作原理。Docker的核心是镜像和容器,需要掌握Docker镜像和容器的创建、管理和操作,如构建自己的Docker镜像、启动和停止Docker容器、连接和交互Docker容器等。学习Docker需要先安装和配置Docker引擎,可以在本地或云上部署一个Docker环境,掌握Docker的安装和配置过程。

qq_33525062的博客 763

Docker 学习

应用场景:DockerFile 可以自定义镜像,简便部署,之前的镜像不能很好满足需求不区分大小写,但习惯大写基本以 FROM 指令开头#开头代表注释。

weixin_51005207的博客 1067

【docker】docker学习笔记

docker学习笔记

weixin_43308380的博客 1361
上一篇: 服务计算作业:简单 web 服务与客户端开发实战
Tifinity
博客等级 码龄9年 18粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值