Docker 的快速使用

ubuntu安装
centos安装

安装完毕之后执行一下这条命令,可以避免每次使用docker命令都需要sudo权限

sudo usermod -aG docker $USER

阿里云docker镜像加速
DockerHub

遇到不懂或者不会使用的命令可以使用docker --help查看文档

docker --help
如:
docker save --help
docker load --help

在这里插入图片描述
 

使用docker时需要特别注意防火墙端口占用

 


 

镜像相关命令

镜像是将应用程序及其需要的系统函数库、环境、配置、依赖等打包而成。

docker images # 查看所有镜像docker pull nginx   # 从云端(docker hub)拉取nginx镜像,没有指定tag则是最新docker save -o ubuntu:20.04.tar nginx # 将镜像导出到磁盘docker rmi nginx  # 删除镜像docker load -i nginx  # 从磁盘中载入镜像... #更多使用 参看 docker --hlep

 


 

容器相关命令

容器相当于一个只能运行当前镜像的一个微系统,只包含镜像运行所需要的lib库、依赖、bash等文件。

# --name:容器名称 -p: 宿主机端口 映射 容器内端口 -d:后台运行容器
docker run --name mynginx-p 20000:22 -d nginx docker ps  # 查看所有运行中的容器
docker ps -a # 查看所有容器docker logs mynginx # 查看容器日志
docker logs -f mynginx # -f 跟踪日志输出,实时监控docker pause mynginx # 挂起(暂停)容器
docker unpause mynginx # 恢复原本状态容器docker stop mynginx # 停止容器docker rm mynginx # 删除容器
docker rm -f mynginx # 强制删除容器,不建议# exec: 进入容器内部执行一个命令  -it:给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互
docker exec -it mn bash # 进入mn容器,执行bash命令, exit可以退出容器.... #更多使用 参看 docker --hlep

有些镜像可能会比较难创建和使用容器,如果发现使用run命令并且去查看状态并没有启动时,可以参看镜像的使用文档或者百度

在docker hub:https://hub.docker.com/_/nginx中查看镜像时,可以发现底下会有使用容器的教程的

在这里插入图片描述
 


 

数据卷

数据卷可以使得宿主机和容器文件做一个映射。用户只操作宿主机文件就可以达到修改容器中的文件,达到用户操作和容器的解耦合,用户不需要进入容器中修改文件。

在这里插入图片描述

docker volume --help	# 查看数据卷的帮助文档
docker volume create html	# 创建一个或多个数据卷docker volume ls	# 查看所有数据卷
docker volume inspect html	# 显示一个或多个数据卷的详细信息docker volume prune 	# 删除所有未被使用的本地数据卷
docker volume rm html 	# 删除一个或多个数据卷

在启动时可以使用-v volumeName:/targetContainerPath参数来挂载(映射)数据卷

docker run --name mn -p 80:80 -v html:/usr/share/nginx/html -d nginx # -v 数据卷:需要映射容器中的文件
# 如果数据卷没有创建,docker会自动创建。

在这里插入图片描述
挂载成功后,修改挂载点中的文件,容器中的文件也会跟着改变

 


 

Dockerfile自定义镜像:Dockerfile参考文档

在这里插入图片描述
编写DockerFile文件

# 指定基础镜像
FROM ubuntu:16.04
# 配置环境变量,JDK的安装目录
ENV JAVA_DIR=/usr/local# 拷贝运行环境jdk 和 java项目的包
COPY ./jdk8.tar.gz $JAVA_DIR/
COPY ./docker-demo.jar /tmp/app.jar# 安装JDK
RUN cd $JAVA_DIR \&& tar -xf ./jdk8.tar.gz \&& mv ./jdk1.8.0_144 ./java8# 配置环境变量
ENV JAVA_HOME=$JAVA_DIR/java8
ENV PATH=$PATH:$JAVA_HOME/bin# 暴露端口
EXPOSE 8090
# 入口,java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar

编辑完DockerFile文件后,使用 docker build 开始构建

# -t: 镜像名:tag  ./: Dockerfile所在的文件夹
docker buld -t javaweb:1.0 ./

由于有分层的概念,构建时可以使用别的基础镜像

 # 指定基础镜像
FROM java:8-alpine  #项目
COPY ./docker-demo.jar /tmp/app.jar# 暴露端口
EXPOSE 8090
# 入口,java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar

如果发现服务怎么都起不来,可以检查下内存是否足够

top # 可以查看内存
df -h # 查看磁盘内存

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/64317.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

golang中map赋值

众所周知,golang中map是一个指针,既然是一个指针,那么参数传递、赋值应该都是指针传递,而下面的例子也印证了我的想法 package mainimport "fmt"func test_map2(m map[string]string) {fmt.Printf("inner: %v, %p…

OFDM 系统在 AWGN 信道下对不同载波频率偏移 (CFO) 的 BER 灵敏度研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

互联网摸鱼日报(2023-09-01)

互联网摸鱼日报(2023-09-01) 36氪新闻 暑期剧综营销复盘:要么小单快返,要么长线绑定 ESG管理商「Wint」融资3500万美元、WeWork启动债务重组、北京规划机器人产业园|PropTech周刊73期 小米应用商店关闭红包专场,羊毛党遭遇痛击…

Metinfo6.0.0任意文件读取【漏洞复现】

文章目录 1.1、漏洞描述1.2、漏洞等级1.3、影响版本1.4、漏洞复现代码审计漏洞点 1.5、深度利用EXP编写 1.6、漏洞挖掘1.7修复建议 1.1、漏洞描述 漏洞名称:MetInfo任意文件读取 漏洞简介:MetInfo是一套使用PHP和MySQL开发的内容管理系统,其…

2023年Java核心技术第十二篇(篇篇万字精讲)

目录 22. AtomicInteger 底层实现原理是什么?如何在自己的项目代码中应用CAS操作? 22.1 典型回答 22.1.1 CAS详细解释: 22.1.1.1 预期值的选取: 22.1.2 CAS的弊端 22.1.2.1 ABA问题: 22.1.2.2 自旋次数限制&#xff1a…

Java实现根据商品ID获取京东商品详情数据,1688商品详情接口,1688API接口封装方法

要通过京东的API获取商品详情数据,您可以使用京东开放平台提供的接口来实现。以下是一种使用Java编程语言实现的示例,展示如何通过京东开放平台API获取商品详情: 首先,确保您已注册成为京东开放平台的开发者,并创建一…

基于网卡序号双网卡数据共享(网卡转发)

基于网卡序号&#xff1a;ifr.ifr_ifindex; 实现网卡之间的数据转发 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <net/if.h> #include <sys/ioctl.h> #include <sys/types.h> #in…

经管博士科研基础【12】包络定理

当我们知道一个函数的最优解时&#xff0c;我们要求解这一个函数的值函数关于函数中某一个参数的导数&#xff0c;那么就可以使用包络定理。 1. 无约束条件下的包络定理 函数在其极值点处对一个参数&#xff08;参数不是自变量&#xff09;取偏导数的结果&#xff0c;等价于这…

【List】List集合有序测试案例:ArrayList,LinkedList,Vector(123)

List是有序、可重复的容器。 有序&#xff1a; List中每个元素都有索引标记。可以根据元素的索引标记(在List中的位置)访问 元素&#xff0c;从而精确控制这些元素。 可重复&#xff1a; List允许加入重复的元素。更确切地讲&#xff0c;List通常允许满足 e1.equals(e2) 的元素…

Node.js crypto模块 加密算法

背景 微信小程序调用飞蛾热敏纸打印机&#xff0c;需要进行参数sig签名校验&#xff0c;使用的是sha1进行加密 // 通过crypto.createHash()函数&#xff0c;创建一个hash实例&#xff0c;但是需要调用md5&#xff0c;sha1&#xff0c;sha256&#xff0c;sha512算法来实现实例的…

小兔鲜商02

npm i vueuse/core -fvue插件使用&#xff1a; 许多公用的全局组件&#xff0c;&#xff0c;可以通过插件注册进去&#xff0c;就不用一个一个导入组件&#xff0c;&#xff0c; import XtxSkeleton from /components/library/xtx-skeletonexport default {install (app) {// …

C++并发编程:使用C++实现线程安全的栈

C并发编程&#xff1a;使用C实现线程安全的栈 引言 在多线程编程中&#xff0c;数据结构的线程安全性是至关重要的。本文将详细介绍如何使用C20标准库中的一些新特性来实现一个线程安全的栈。 什么是线程安全的栈&#xff1f; 简单来说&#xff0c;一个线程安全的栈是一个可…

linux操作系统中的动静态库(未完)

1. 静态库与动态库 静态库&#xff08;.a&#xff09;&#xff1a;程序在编译链接的时候把库的代码链接到可执行文件中。程序运行的时候将不再需要静态库动态库&#xff08;.so&#xff09;&#xff1a;程序在运行的时候才去链接动态库的代码&#xff0c;多个程序共享使用库的…

为什么Java接口可以多继承,而类不可以?

个人主页&#xff1a;金鳞踏雨 个人简介&#xff1a;大家好&#xff0c;我是金鳞&#xff0c;一个初出茅庐的Java小白 目前状况&#xff1a;22届普通本科毕业生&#xff0c;几经波折了&#xff0c;现在任职于一家国内大型知名日化公司&#xff0c;从事Java开发工作 我的博客&am…

unity 跨屏显示

1.代码 /*Type:设置分辨率*/ using System.Collections; using System.Collections.Generic; using UnityEngine; using System; using System.Runtime.InteropServices;public class ScreenManager : MonoBehaviour {[HideInInspector]//导入设置窗口函数 [DllImport("…

Redis之MoreKey问题及Scan命令解读

目录 MoreKey问题讨论 Scan命令 Sscan命令 Hscan命令 Zscan命令 MoreKey问题讨论 keys * 查看当前库所有key 对于海量数据执行key *会造成严重服务卡顿、影响业务。在实际环境中最好不要使用。生产制造过程中keys * / flushdb/flushall等危险命令以防止误删误用。 大量的…

kotlin实现猜数游戏

游戏规则 1.程序随机生成一个1到100的数字&#xff0c;作为MagicNumber 2.用户根据提示输入数据&#xff0c;只有三次机会输入数据 代码 代码很简单&#xff0c;使用了let内置函数 fun main() {//生成随机数可以使用java的方法//val magicNumber Random().nextInt(11)val ma…

如何确认linux的包管理器是yum还是apt,确认之后安装其他程序的时候就需要注意安装命令

打开终端 输入apt&#xff0c;下图中提示未找到命令&#xff0c;则基本上包管理工具就是用yum的 输入yum&#xff0c;我们看到有打印信息&#xff0c;则说明包管理工具是yum的&#xff0c;离线安装命令使用rpm

斥资4亿,收购这家WLAN厂商,结果……

晚上好&#xff0c;我的网工朋友 不少朋友可能有隐形&#xff0c;2019年的时候&#xff0c;Juniper花费4.05亿美元&#xff0c;收购WiFi初创公司Mist Systems。 Mist Systems是一家买无线产品起家的公司&#xff0c;由前思科高管创建的。主打的产品是“AI-Driven WLAN”&…

大数据平台测试-优秀员工申请模板

在企业里,优秀员工是需要申请的,下面分享一些模板: 1、申请个人优秀奖-测试质量奖 申报优秀员工-测试质量奖参考模板: 推动XXX质量共建的优秀实践者,通过验证的产研流程把控,过程问题的据理力争, 推动整体质量的大幅提升。在其强有力的执行和严格的把关下,XXX的质量管…