docker-基本操作命令,生成docker镜像包

2023-09-18 11:13:37

一、帮助启动类命令。

1、启动,命令:systemctl start docker

2、停止,命令:systemctl stop docker

3、重启,命令:systemctl restart docker

4、查看docker状态,命令:systemctl status docker

5、开机启动,命令:systemctl enable docker

6、查看docker概要信息,命令:docker info

7、查看docker整体帮助文档,命令:docker --help

8、查看docker命令帮助文档,命令:docker 具体命令 --help

二、镜像命令。

1、列出本地主机上的镜像,展示的是一个列表,表头含义如下:

repository:表示镜像的仓库源

tag:镜像的标签

images ID:镜像ID

created:镜像创建时间

size:镜像大小

命令:docker images

-a:列出本地所有镜像(包括历史镜像)

-q:只显示镜像ID

2、某个×××镜像名字,展示的是一个列表,表头含义如下:

name:镜像名称

description:镜像说明

stars:点赞数量

official:是否是官方的

automated:是否是自动构建的

命令:docker search

3、下载镜像,命令:docker pull 某个×××镜像名字,有两种命令:

a.docker pull 镜像名字[:TAG]

b.docker pull 镜像名字   没有tag就是最新版

4、查看镜像/容器/数据卷所占的空间,命令:docker system df

5、删除某个×××镜像名字ID(这里就不展示删除了),命令:docker rmi

删除单个,命令:docker rmi  -f  镜像ID

删除多个,命令:docker rmi  -f  镜像名1:TAG镜像名2:TAG

删除全部,命令:docker rmi  -f  $(docker images -qa)

三、容器命令。

1、新建+启动容器,命令:docker [options] image [command] [ARG......]

启动交互式容器(前端服务器)

--name=“容器新名字”

-d:后台运行容器

启动交互式,命令:docker run -it

-i:以交互模式运行容器  interactive

-t:为容器重新分配一个为输入终端  tyy

前台有伪终端,等待交互,命令:docker run -it Ubuntu bash/bin

P:随机终端口映射,大写P

p:指定终端口映射,小写p,常用此写法。

2、列出当前所运行的容器,命令:docker -ps [options]

常用命令:

docker -ps -a:列出当前所有正在运行的容器+历史上运行过的

docker -ps  -l:显示最近创建的容器

docker -ps  -q:静默模式,只显示容器ID

3、退出容器,有两种退出命令(这里不做展示)。

a.exit:run进去容器,exit推出,容器停止。

b.ctrl+p+q:run进去容器,ctrl+p+q退出,容器不停止。

4、启动已经停止的容器,命令:docker start 容器ID或容器名

5、重启容器,命令:docker restart 容器ID或容器名

6、停止容器,命令:docker stop 容器ID或容器名

7、强制停止容器,命令:docker kill 容器ID或容器名

8、删除已停止的容器,命令如下:

docker rm +容器ID,先停下来再删除

docker rm -f   容器ID/容器名    强制删除

一次性删除多个容器实例:docker rm -f   $(docker ps -a -q)

                                           docker ps -a -q | xargs docker rm

 9、启动守护式容器(后台服务器),命令:docker run -d 容器名

docker run -it redis:6.0.8 前台交互式启动

启动镜像,命令:docker run -it 容器id /bin/bash

docker run -d redis:6.0.8 后台守护式启动

10、查看容器日志,命令:docker logs 容器ID

11、查看容器内运行的进程,命令:docker top 容器ID

12、查看容器内部进程,命令:docker inspect 容器ID

13、进入正在运行的容器并进行命令交互,命令:docker exec -it 容器ID bashshell

重新进入,命令:docker attach 容器ID

attach:直接进入容器启动命令的终端,不会启动新的进程,用exit退出,会导致容器停止。

exec:是在容器中打开新的终端,不会启动新的进程,用exit退出,不会导致容器终止,一般推荐使用这一种。

14、从文件拷贝内容到主机上,命令:docker cp 容器ID:容器内路径,目的主机路径

15、导出和导入容器。

export:导出容器的内容留作为一个tar归档文件(对应import命令)。

import:从tar包中的内容创建一个新的文件系统再导入为镜像(对应export命令)。

案例:

docker export 容器ID > 文件名.tar

cat 文件名.tar | docker import -镜像用户/镜像名:镜像版本号

四、外网联通的情况下安装vim命令,docker容器内执行以下两条命令。

1、apt-get update

2、apt-get -y install vim

四、生成docker镜像包

第一步,基于pull的基本镜像环境,创建dockerfile

## 基础镜像java
 FROM openjdk:8u265
 ## 作者是
 MAINTAINER cookie
 ## 就是你上传的jar包的名称。给jar包起个别名
 ADD user-1.0.0.jar /app/user.jar
 ## 就是在容器中以多少端口号运行
 EXPOSE 7001
 ## 容器启动之后执行的命令,java -jar spring_boot.jar 即启动jar
 ENTRYPOINT ["java","-Dspring.profiles.active=test","-jar","-Xmx512m","-Xms512m","-Xmn200m","/app/user.jar"]

第二步,启动镜像,进行测试

docker run -d --restart=always --name xxxx -p 7001:7001   -v  服务器目录:容器目录  user:V1.0

例:

docker run -d --restart=always --name user -p 7001:7001 -v  /test/user/log:/app/log user:V1.0 

进入docker容器命令

docker exec -it  xxxx /bin/bash

例:

docker exec -it  user /bin/bash

第三步,打包镜像,保存到服务器

注意build后面的空格和点

save docker的ID到默认路径下

docker build -t xxxx:[tag] .

docker save  xxxxx  > xxxx.tar

更多推荐

自然语言处理(扩展学习1):Scheduled Sampling(计划采样)与Teacher forcing(教师强制)

自然语言处理(扩展学习1):ScheduledSampling(计划采样)与2.Teacherforcing(教师强制)作者:安静到无声个人主页作者简介:人工智能和硬件设计博士生、CSDN与阿里云开发者博客专家,多项比赛获奖者,发表SCI论文多篇。Thanks♪(・ω・)ノ如果觉得文章不错或能帮助到你学习,可以点赞👍

linux进程间信号量通信IPC(sem)

一、信号量信号量是一种用于提供不同进程间或一个从给定进程的不同线程间同步手段的原语。1.1、Posix信号量的选择1)单个进程的各个线程共享,可以使用基于内存的信号量。2)彼此无亲缘关系的不同进程需使用信号量时,通常使用有名信号量。1.2、基于内存的信号量的持续性1)如果某个基于内存的信号量是由单个进程的各个线程共享的

【新书推荐】大模型赛道如何实现华丽的弯道超车 —— 《分布式统一大数据虚拟文件系统 Alluxio原理、技术与实践》

文章目录大模型赛道如何实现华丽的弯道超车——AI/ML训练赋能解决方案01具备对海量小文件的频繁数据访问的I/O效率02提高GPU利用率,降低成本并提高投资回报率03支持各种存储系统的原生接口04支持单云、混合云和多云部署01通过数据抽象化统一数据孤岛02通过分布式缓存实现数据本地性03优化整个工作流的数据共享直播预告

贵阳RapidSSL的ssl证书适合个人网站吗

现在很多开发者不论是为了记录还是宣传,很多人都会创建一个属于自己的网站,而有了自己的网站,为了保护网站信息安全以及防止网站数据被篡改与劫持,就需要为网站安装SSL证书。那么RapidSSL的SSL证书个人开发者可以使用吗?今天就随SSL盾小编了解RapidSSL旗下的SSL证书。1.RapidSSL是SSL证书颁发机构

JavaSE、JavaEE与Spring的概念和异同点剖析以及规范13 个分析

JavaSE、JavaEE与Spring的概念和异同点剖析以及规范13个分析目录概述需求:设计思路实现思路分析1.什么是JavaSE2.是JavaEE3.什么是Spring参考资料和推荐阅读Survivebydayanddevelopbynight.talkforimportbiz,showyourperfectcod

想要精通算法和SQL的成长之路 - 最长回文子串

想要精通算法和SQL的成长之路-最长回文子串前言一.最长回文子串1.1中心扩散法的运用前言想要精通算法和SQL的成长之路-系列导航一.最长回文子串原题链接1.1中心扩散法的运用这类具有回文性质的题目,我们如果用常规的从左往右或者从右往左的遍历方式,在编码上往往比较麻烦。那不妨,我们以字符串中的每一个字符为起点,同时向左

typedef function<int (int,int)> func_t;

这段代码是C++中用于创建函数类型别名(functiontypealias)的语法。让我们来逐步解释它:typedef:typedef是C++中的关键字,用于创建类型别名。它允许你为一个已存在的类型创建一个新的、易于使用的名称。function:这部分指定了要创建的类型别名的名称。在这里,我们将创建一个名为fun_t的

电脑如何查看代理服务器IP?

许多人在使用互联网时可能会遇到需要使用代理服务器的情况。但是,你知道如何在电脑上查看代理服务器IP吗?本文将为您分享简单易懂的方法,帮助您轻松了解代理设置的秘密!代理服务器在网络世界中担任着重要的角色,它可以充当中间人,转发用户和目标服务器之间的请求和响应。使用代理服务器可以带来许多好处。那么,要如何查看代理服务器IP

flutter开发实战-自定义长按TextField输入框剪切、复制、选择全部菜单AdaptiveTextSelectionToolba样式UI效果

flutter开发实战-自定义长按TextField输入框剪切、复制、选择全部菜单样式UI效果在开发过程中,需要长按TextField输入框cut、copy设置为中文“复制、粘贴”,我首先查看了TextField中的源码,看到了ToolbarOptions、AdaptiveTextSelectionToolbar,这时

java面试题-并发编程相关面试题

java面试题-并发编程相关面试题1线程的基础知识面试官:聊一下并行和并发有什么区别?候选人:是这样的~~现在都是多核CPU,在多核CPU下并发是同一时间应对多件事情的能力,多个线程轮流使用一个或多个CPU并行是同一时间动手做多件事情的能力,4核CPU同时执行4个线程面试官:说一下线程和进程的区别?候选人:嗯,好~进程

<Altium Designer> 将.DSN文件导入并转换成SchDoc文件

目录01使用向导方式导入.DSN02消除UniqueIdentifiersErrors03文章总结大家好,这里是程序员杰克。一名平平无奇的嵌入式软件工程师。本文主要是总结和分享将OrCADCapture画的原理图文件(.DSN)导入到AltiumDesigner,转换成对应的原理图文件(SchDoc)的方法。本文所使用

热文推荐