docker的小知识大学问

2024-09-05 06:48
文章标签 docker 知识 大学

本文主要是介绍docker的小知识大学问,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.docker退出容器但是不关闭容器

    Ctrl+P+Q

2.如何批量停止所有的容器

docker stop $(docker ps -q)

 注意使用 -q 参数,仅仅输出镜像/容器的ID.

3.容器重启后会IP地址都会改变,查看容器的ID

docker inspect -f '{{.NetworkSettings.IPAddress}}' <CONTAINER>

4.docker exec 与 docker attach区别

docker attach 直接进入容器 启动命令 的终端,不会启动新的进程。

docker exec 则是在容器中打开新的终端,并且可以启动新的进程。

如果想直接在终端中查看启动命令的输出,用 attach;其他情况使用 exec。

5.docker Engine是什么?

我们平时说的 docker Engine就是docker,docker的架构是C/S架构,开发者通过 docker client 向docker daemon发送请求。

Docker Engine包括这么几个部分:

Docker Daemon — docker 的守护进程,属于C/S中的server。

Docker REST API — docker daemon向外暴露的REST 接口,属于Client。

Docker CLI — docker向外暴露的命令行接口(Command Line API),属于Client。

6.批量删除所有所有退出的容器

docker rm ${docker ps -aq -f status=exited}
 docker rm $(docker ps -a | grep Exited | awk '{print $1}')

7.docker中CMD与ENTRYPOINT的使用格式?

shell格式

<instruction>  <conmmand>
CMD echo "hello docker"
ENTRYPOINT python  "/code/algorithm-start.py"

exec格式

<instruction> ["executable","param1","param2",.....]
CMD ["/bin/bash","hello dicker"]
ENTRYPOINT ["python","/code/algorithm-start.py"]

CMD与ENTRYPOINT都推荐使用exec格式。

8.docker中CMD与ENTRYPOINT的区别?

CMD与ENTRYPOINT都设置的是容器启动时的命令,两者有很大的区别。

CMD是设置容器启动的默认命令,如果使用者在使用容器时设置了容器启动的命令,则CMD执行的命令就失效了,也就是说docker run  [IMAGE] /bin/bash 启动[IMAGE]时的 /bin/bash命令会覆盖CMD执行的命令,ENTRYPOINT则不会,ENTRYPOINT是容器启动真正的命令,启动容器时候的命令并不能覆盖ENTRYPOINT执行的命令,docker run 所携带的启动命令或者是参数都会当做 ENTRYPOINT执行命令的参数。还有一个区别就是CMD可以当做ENTRYPOINT执行命令的默认参数。

    

左边是 start.py 输出传递给它的参数,右边是启动dockerfile文件。制作镜像 test

如果需要把CMD当做ENTRYPOINT的参数,需要把CMD房子ENTRYPOINT的上面。

9.docker容器如何指定静态IP?

只有开发者在使用 --subset 创建的网络才能指定静态IP。

docker network create --driver bridge --subnet 172.25.16.0/24 --gateway 172.25.16.1 my_net2
docker run -it --network=my_net --ip 172.18.0.8 busybox

10.什么是容器技术?

轻量级的操作系统虚拟化解决方案, 能够在Linux系统上迅速创建一个容器(类似于虚拟机)并在容器上部署和运行应用程序,同时还可以通过配置文件轻松将应用程序的自动化安装、部署和升级。

11.容器是基于什么技术的?

基于Linux容器(LXC)技术。

12.改变防护墙状态后,容器无法联网?

firewall开启状态,装docker后(能联网),firewall关闭后,在容器中无法联网,firewall再次打开,在容器中有网。

firewall关闭着,装docker后(能联网),firewall启动(无法联网,无DNS服务),firewall开启后,在容器中无法联网。

在此实验基础上,装docker之前先开启防火墙。

13.直接关闭容器快捷键?

    Ctrl+D

14.最近遇到的一个问题:启动nginx的镜像,发现无法打开通过goofys挂载的视频文件,提示无法打开视频,权限不足,在启动镜像时候,已经制定 --privileged=true,还是提示权限不足。

原因是 centos中安全模块把selinux权限禁止了,需要关闭 selinux, 打开 /etc/sysconfig/selinux , 把SELINUX=enforcing 改为 SELINUX=disabled。

15. docker的仓库和仓库注册服务器(registry)

一直以来,我总把仓库和仓库注册器(registry)混为一谈,并不严格区分。实际上仓库注册服务器上往往放着多个仓库,每个仓库中又包含着多个镜像,每个镜像包括多个不同的标签(tag)。仓库分成共有的和私有的。最大的公有仓库是 docker Hub。registry并不是仓库,registry是仓库注册器。标准的镜像名字:  服务器IP:端口/分类/镜像名字:tag  比如:docker.io/yunqianqian/tensorflow-dev-cpu:1.4

16. 查看容器中运行的进程

docker top  <ID>/<container name>

17. docker -p -v映射时候,宿主机和容器的位置关系

时间久了就忘记了,其实,-p hostport : containerport  -v hostpath : containerpath,记忆的话就是先有宿主机后有容器,所以无论是端口映射还是数据卷挂载都是先是宿主机后是容器。

18.修改docker存储路径

#确定修改文件地址
systemctl enable docker#增加选项  --graph
--graph <修改的路径>#重新装在配置
docker daemon-reload#重启docker
systemctl restart docker #查看修改是否成功
docker info 

19.容器使用了ns技术,我为啥使用命令查看不到呢

这是因为默认docker把创建的网络命名空间链接文件隐藏起来了,导致 ip netns 命令无法读取。

#执行下面的命令来获取容器进程号
docker inspect [container-name] |grep Pid
执行如下命令,将进程网络命名空间恢复到主机目录,ln -s /proc/[container-pid]/ns/net /var/run/netns/[container]

 

 

这篇关于docker的小知识大学问的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1138248

相关文章

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

sqlite3 相关知识

WAL 模式 VS 回滚模式 特性WAL 模式回滚模式(Rollback Journal)定义使用写前日志来记录变更。使用回滚日志来记录事务的所有修改。特点更高的并发性和性能;支持多读者和单写者。支持安全的事务回滚,但并发性较低。性能写入性能更好,尤其是读多写少的场景。写操作会造成较大的性能开销,尤其是在事务开始时。写入流程数据首先写入 WAL 文件,然后才从 WAL 刷新到主数据库。数据在开始

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

禅道Docker安装包发布

禅道Docker安装包发布 大家好, 禅道Docker安装包发布。 一、下载地址 禅道开源版:   /dl/zentao/docker/docker_zentao.zip  备用下载地址:https://download.csdn.net/download/u013490585/16271485 数据库用户名: root,默认密码: 123456。运行时,可以设置 MYSQL_ROOT_P

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群 华为云最近正在举办828 B2B企业节,Flexus X实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Nginx等服务的需求,一定不要错过这个机会。赶紧去看看吧! 什么是华为云Flexus X实例 华为云Flexus X实例云服务是新一代开箱即用、体

docker-compose安装和简单使用

本文介绍docker-compose的安装和使用 新版docker已经默认安装了docker-compose 可以使用docker-compose -v 查看docker-compose版本 如果没有的话可以使用以下命令直接安装 sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-c

【Python知识宝库】上下文管理器与with语句:资源管理的优雅方式

🎬 鸽芷咕:个人主页  🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言一、什么是上下文管理器?二、上下文管理器的实现三、使用内置上下文管理器四、使用`contextlib`模块五、总结 前言 在Python编程中,资源管理是一个重要的主题,尤其是在处理文件、网络连接和数据库

01 Docker概念和部署

目录 1.1 Docker 概述 1.1.1 Docker 的优势 1.1.2 镜像 1.1.3 容器 1.1.4 仓库 1.2 安装 Docker 1.2.1 配置和安装依赖环境 1.3镜像操作 1.3.1 搜索镜像 1.3.2 获取镜像 1.3.3 查看镜像 1.3.4 给镜像重命名 1.3.5 存储,载入镜像和删除镜像 1.4 Doecker容器操作 1.4