首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Docker 命令记录

Docker 命令记录

作者头像
郭顺发
发布于 2023-07-17 10:04:35
发布于 2023-07-17 10:04:35
18010
代码可运行
举报
文章被收录于专栏:pandacode_cnpandacode_cn
运行总次数:0
代码可运行

docker 命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 查看docker版本。
docker -v
docker version
# 查看docker系统信息
docker info
# 搜索镜像
docker search 镜像
# 获取镜像
docker pull 镜像仓库地址
# 上传镜像
docker push 镜像仓库地址
# 查看镜像的创建历史
docker history 镜像仓库地址
# 运行容器
# -name 定义一个容器的名字
# -d 标识是让 docker 容器的后台运行。
# -p 标识通知 docker 将容器内部使用的网络端口映射到我们使用的主机上。
docker run --name nginx -p 8080:80 nginx
# 查询容器内部ip地址
docker inspect 容器ID/容器名 | grep IPAddress
# 列出容器 -- 仅运行的容器
docker ps
# 列出容器 -- 包含停止的容器
docker ps -a
# 查看当前本地所有的镜像
docker images
# 停止容器
docker stop 容器ID/容器名
# 开始容器
docker start 容器ID/容器名
# 重启容器
docker restart 容器ID/容器名
# 杀掉一个运行中的容器
docker kill -s KILL 容器ID/容器名
# 删除容器
docker rm 容器ID/容器名
# 删除一个或多个容器
docker rm -f xx,xx2
# 删除镜像【顺序:停止镜像里的容器,再删除容器,最后再删除镜像】
docker rmi 镜像id/镜像名
# 列出所有的容器 ID
docker ps -aq
# 停止所有的容器
docker stop $(docker ps -aq)
# 删除所有的容器
docker rm $(docker ps -aq)
# 删除所有的镜像
docker rmi $(docker images -q)
# 停止并删除指定容器
docker ps -a | grep 容器ID/容器名 | awk '{print $1}' \ | xargs -i docker stop {} | xargs -i docker rm {}
# 删除镜像
docker images | grep -E '镜像id/镜像名' | awk '{print $3}' \ | uniq | xargs -I {} docker rmi --force {}
# ex: 删除镜像 `nginx:latest`
docker images | grep -E 'nginx' | grep 'latest' | awk '{print $3}' \ | uniq | xargs -I {} docker rmi --force {}
# 删除所有停止的容器
docker container prune
# 删除所有部使用的镜像
docker image prune --force --all
docker image prune --f --a
# 限制容器内存 -m
docker run --name nginx -d -p 8080:80 -m 100m nginx
# 查看容器运行内存信息
docker stats nginx
# 进入容器
docker exec -it 容器ID/容器名 /bin/bash
# 以交互模式启动一个容器,在容器内执行/bin/bash命令
docker run -i -t 容器ID/容器名 /bin/bash
# 查看容器日志 -t: 显示时间戳
docker logs -f -t 容器ID/容器名
docker logs -fn10 -t 容器ID/容器名
# 构建镜像
# 用法:docker build -t 镜像名称 .
docker build -t docker_demo .

2. docker 启动jar包

2.1. 编写dockerFile文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 引用哪个镜像,没有镜像则pull
FROM centos:7
# 为Dockerfile中所有RUNCMDENTRYPOINTCOPYADD指令设定工作目录
WORKDIR /usr
# 执行命令(这里创建了一个目录)
RUN mkdir /usr/local/java
# 和copy一样,复制文件到指定目录,但是copy不能解压,add自动解压
ADD jdk-8u111-linux-x64.tar.gz /usr/local/java
# 重命名(不知道文件名可以现在宿主机解压后看一下)
RUN ln -s /usr/local/java/jdk1.8.0_111 /usr/local/java/jdk 
# 设置环境变量 
ENV JAVA_HOME /usr/local/java/jdk 
ENV JRE_HOME ${JAVA_HOME}/jre 
ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib 
ENV PATH ${JAVA_HOME}/bin:$PATH 

# 创建一个目录
RUN mkdir /demo
# 将jar包copy到指定目录
ADD job.jar /demo/app.jar
# 启动命令
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","-Xmx512m","-Xms512m","/demo/app.jar"]

2.2. 下载需要的外部包

​ 这个场景我只用到了jdk。

2.3. 执行dockerFile文件,构建镜像

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker build -t my/demo .

注意最后的 . 表示 Dockerfile 文件在当前目录下

my/demo 构建之后镜像名称

2.4. 运行容器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker run -d --name demo -p 8080:8080 my/demo

关于 Docker 镜像的更多信息:

关于 Docker 容器的更多信息:

关于 Docker 的更多信息:

参考文档

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-07-01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
请问如何获取代码和数据
请问如何获取代码和数据
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
深浅拷贝
1.Object.assign 此方法是es6新推出来的方法,目的是将所有可枚举属性的值从一个或多个源对象分配到目标对象 Object.assign(目标对象, 源对象)该方法参数可以有一个,或者是对个
conanma
2021/10/28
4910
JavaScript中的浅拷贝与深拷贝
JS中有两种数据类型,值类型和引用类型,当我们需要把一个变量赋给另一个变量时,对于值类型很简单:
蒋鹏飞
2020/10/15
7930
JavaScript中的浅拷贝与深拷贝
JavaScript的深浅拷贝
在JavaScript中,拷贝一个对象是一项非常常见的操作,常用的方法包括深拷贝和浅拷贝。但是,不同的拷贝方法会产生不同的效果和影响,因此深入了解和掌握深浅拷贝的概念和实现方法是非常重要的。
泽霖
2023/11/29
1830
简简单单在 JavaScript 中克隆对象
JavaScript 的原始数据类型(例如number、string、null,undefined 和 boolean)是不可变的,这意味着一旦创建,它们的值就无法更改。但是对象和数组是可变的,允许在创建后修改其值。实际上,这意味着基元是通过值传递的,而对象和数组是通过引用传递的。考虑以下例子:
疯狂的技术宅
2020/04/24
6850
简简单单在 JavaScript 中克隆对象
深浅拷贝
Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象
hss
2022/02/25
3240
JavaScript 深拷贝和浅拷贝
在 JavaScript 引用数据类型中,变量保存的是一个指向堆内存的指针,当需要访问引用类型(如对象,数组等)的值时,首先从栈中获得该对象的地址指针,然后再从堆内存中取得所需的数据。
李振
2021/11/26
3270
JS 深拷贝与浅拷贝
其实在工作写代码和面试中,会经常碰到这两个概念:深拷贝,浅拷贝。但今天的重点是深拷贝。
Umbrella1024
2021/02/18
2.2K0
JavaScript中浅拷贝和深拷贝的区别和实现
要理解 JavaScript中浅拷贝和深拷贝的区别,首先要明白JavaScript的数据类型。JavaScript有两种数据类型,基础数据类型和引用数据类型。
Javanx
2019/09/05
6680
JavaScript中浅拷贝和深拷贝的区别和实现
JavaScript专题之深浅拷贝
如果是数组,我们可以利用数组的一些方法比如:slice、concat 返回一个新数组的特性来实现拷贝。
疯狂的技术宅
2019/03/28
4260
JavaScript专题之深浅拷贝
JavaScript中浅拷贝和深拷贝的区别和实现
要理解 JavaScript中浅拷贝和深拷贝的区别,首先要明白JavaScript的数据类型
tianyawhl
2019/04/04
5580
JavaScript中浅拷贝和深拷贝的区别和实现
分享 4 种 JS 深拷贝的方法
浅拷贝是创建一个新对象,这个对象有着原始对象属性值的拷贝。如果属性是基本类型,拷贝的就是基本类型的值,如果属性是引用类型,拷贝的是内存地址 。
前端达人
2022/06/09
12.8K0
深拷贝 和 浅拷贝 的区别 ?
含义:假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,拿人手短,如果B没变,那就是深拷贝,自食其力。
青梅煮码
2023/01/16
4420
JS实现深浅拷贝
1.实现浅拷贝 // 1. ...实现 let copy1 = {...{x:1}} // 2. Object.assign实现 let copy2 = Object.assign({}, {x:1}) 2. 实现深拷贝 // 1. JOSN.stringify()/JSON.parse() let obj = {a: 1, b: {x: 3}} JSON.parse(JSON.stringify(obj)) // 2. 递归拷贝 function deepClone(obj) { let cop
TimothyJia
2019/11/12
2.2K0
完美解决JavaScript的深浅拷贝
"拷贝"一直都是面试的热门考题。看似简单,实则难住不少面试者,回答的马马虎虎,模棱两可。抽出时间好好分析总结一下"拷贝",让这个难题彻底消失。
小丑同学
2020/09/20
5270
《现代Javascript高级教程》JavaScript深拷贝与浅拷贝
在JavaScript中,对象的拷贝是一项常见的操作。浅拷贝和深拷贝是两种常用的拷贝方式。浅拷贝只复制对象的引用,而深拷贝创建了一个全新的对象,包含与原始对象相同的值和结构。深拷贝和浅拷贝各有适用的场景和注意事项。本文将详细介绍如何实现一个完整而优雅的深拷贝函数,处理循环引用和特殊类型,优化性能,并探讨深拷贝和浅拷贝的应用场景、注意事项和相关属性。
linwu
2023/07/27
6870
搞定 JS 深浅拷贝
一个基本的深拷贝就这样完成了,这里可以用 while 替代 for...in ,因为 while 比 for...in 遍历的速度快,现在就来实现一个迭代器
小鑫
2022/04/24
8160
JavaScript - 浅拷贝和深拷贝
注: JSON.stringify()转换对象过程中,undefined、任意的函数以及 symbol 值,在序列化过程中会被忽略(出现在非数组对象的属性值中时)或者被转换成null(出现在数组中时)。函数、undefined 被单独转换时,会返回 undefined。
愤怒的小鸟
2020/12/14
6520
深入理解JavaScript中的堆与栈 、浅拷贝与深拷贝
学了这么长时间的JavaScript想必大家对浅拷贝和深拷贝还不太熟悉吧,今天在项目中既然用到了,早晚也要理清一下思路了,在了解之前,我们还是先从JavaScript的数据类型存放的位置 堆栈开始说起吧!
青梅煮码
2023/03/02
2590
更简洁的深拷贝实现思路
深度克隆(深拷贝)一直都是初、中级前端面试中经常被问到的题目,网上介绍的实现方式也都各有千秋,大体可以概括为三种方式:
前端达人
2022/04/18
6730
更简洁的深拷贝实现思路
再说深拷贝对象的研坑
浅拷贝:只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存。 深拷贝:会另外创造一个一模一样的对象,新对象跟原对象不共享内存,修改新对象不会改到原对象。
张炳
2020/05/11
5540
相关推荐
深浅拷贝
更多 >
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档