前言
https://docs.docker.com/
https://www.docker.com/
docker是目前非常流行的技术,很多公司都在生产环境中使用,但是docker依赖的底层技术实际上很早就已经出现了,现在以docker的形式重新焕发活力,并且能很好的解决面临的问题
类似集装箱
- 集装箱之间相互隔离
- 长期反复使用
- 快速装载和卸载
- 规格标准,在港口和船上都可以摆放
一、docker安装
咱直接使用官方安装脚本自动安装
安装命令如下:
- 下载脚本文件
curl -fsSL https://test.docker.com -o test-docker.sh
- 执行脚本文件
sudo sh test-docker.sh
执行脚本会出现以下信息,等待执行完即可
- 脚本执行完后,使用
docker -v
查看是否安装成功
二、docker命令
pull(安装镜像)
指定版本拉去(不带后面的则拉取最新的版本)
docker pull nginx:latest
images(查看镜像)
指定版本拉去(不带后面的则拉取最新的版本)
docker images
or
# 查看是否存在指定镜像
docker images nginx
run(创建容器)
先查看是否存在相同容器名称
docker ps -a
nginx为例
docker run --name nginx-admin -p 8080:80 -v /local:/container -d nginx
--name
nginx-admin(容器名称。)-p
8080:80(端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。)-v
/local:/container(设置服务器/local
文件挂载到容器/container
文件位置)-d
设置容器在后台一直运行。nginx
指定容器为nginx
查看错误日志方法是docker logs 运行容器的Id
如果提示权限问题 添加
--privileged=true \
创建示例
docker run --name docker_nginx -p 8080:80 -v /var/log/nginx:/var/log/nginx -v /etc/nginx/conf.d:/etc/nginx/conf.d -v /etc/nginx/nginx.conf:/etc/nginx/nginx.conf -v /www/project/admin:/usr/share/nginx/html -d nginx
容器文件目录
- 日志目录 :
/var/log/nginx
- 配置文件 :
/etc/nginx/conf.d
- 主配置文件 :
/etc/nginx/nginx.conf
- 项目目录 :
/usr/share/nginx/html
删除容器
指定容器名或者ID均可
docker rm -f admin
exec(进入运行中的容器)
nginx为例
- 先
docker ps
查看运行中的容器
- 然后使用以下命令进入容器(
nginx-admin
容器名称或者ID都可以。)
容器名
docker exec -it nginx-admin /bin/bash
容器ID(Id可以简写为完整id的前几个字符-只要能区别其他ID即可)
docker exec -it ad bash
or
docker exec -it adac bash
or
docker exec -it adac772db396 bash
- 使用
exit
退出当前容器
常用命令
可使用以下命令查看对应命令有哪些参数及使用(执行命令加上--help
)
docker run --help
Common Commands(常用命令) | 描述 |
---|---|
run | Create and run a new container from an image(从映像创建并运行新容器) |
exec | Execute a command in a running container(在运行的容器中执行命令) |
ps | List containers(列出开启的容器) |
build | Build an image from a Dockerfile(从Dockerfile构建图像) |
pull | Download an image from a registry(拉去镜像) |
push | Upload an image to a registry(上传镜像) |
images | List images(映像列表) |
login | Log in to a registry(登录) |
logout | Log out from a registry(登出) |
search | Search Docker Hub for images(查找) |
version | Show the Docker version information(版本信息) |
info | Display system-wide information(详细信息) |
总结
如有启发,可点赞收藏哟~
相关文章
ubuntu20.04安装实时内核补丁PREEMPT_RT
下载实时内核补丁,我下载patch-5.15.148-rt74.patch.sign和patch-5.15.148-rt74.patch.xz。通过以下指令看具体报错并输出日志到make.log:make -j1 deb-pkg 2>&1 | tee ~/make.log。比较幸运没遇到问题,重启进入后,启动页面没有变化,还是进入ubuntu,但是查看内核版本已经自动变到5.15.148。我下载linux-5.15.148.tar.xz和linux-5.15.148.tar.sign。
编程日记 2024/02/23 08:40:54
如何使用 img 文件在 VirtualBox 中创建虚拟机?
在虚拟化环境中,.img 格式的磁盘映像文件是常见的分发形式。如果您想在 VirtualBox 中使用这样的映像文件创建虚拟机,以下是详细的步骤和命令示例。
编程日记 2024/02/22 08:58:12
Linux 目录磁盘满了,怎么查找大文件
如果你不确定某个文件或目录的用途,最好先进行调查或咨询专业人士,而不是直接删除它们。,这是一个基于文本的磁盘使用分析器,非常适合于查找大文件。如果它没有预装,你可以通过你的包管理器安装它(例如,在Ubuntu上使用。会分析根目录的磁盘使用情况,并提供一个交互式界面来浏览最大的文件和目录。请注意,运行这些命令可能需要一些时间,因为它们会检查许多文件。)磁盘满了,你可以使用以下方法来查找占用空间最大的文件和目录。这个命令会搜索根目录下所有的文件,并显示它们的大小。为了找到最大的文件,你可以使用。
编程日记 2024/02/19 20:50:57
Linux CentOS系统安装SQL Server并结合内网穿透实现公网访问本地数据
简单几步实现在Linux centos环境下安装部署sql server数据库,并结合cpolar内网穿透工具,创建安全隧道将其映射到公网上,获取公网地址,实现在外异地远程连接家里/公司的sqlserver数据库,而无需公网IP,无需设置路由器,亦无需云服务器。
编程日记 2024/02/19 20:49:01
如何在 Debian 12 上安装 Microsoft SQL Server?
在安装 Microsoft SQL Server 之前,我们需要确保系统是最新的,并安装一些必要的软件和依赖项。以下是详细的步骤:这将更新软件包列表并升级已安装的软件包。这将安装 curl 用于下载文件,gnupg 用于导入 GPG 密钥,以及 apt-transport-https 用于通过 HTTPS 访问软件包。
编程日记 2024/02/18 22:53:30
树莓派4B(Raspberry Pi 4B)使用docker搭建springBoot/springCloud服务
树莓派4B(Raspberry Pi 4B)使用docker搭建springBoot/springCloud服务
编程日记 2024/02/13 19:58:42
Linux 别名命令:如何创建和使用 Linux 别名
别名 my-update 等同于 sudo apt-get update && sudo apt-get upgrade alias my-update = 'sudo apt-get update && sudo apt-get upgrade'使用my-update命令快速更新和升级系统软件包。
编程日记 2024/02/09 09:30:41
linux docker 部署mysql8以上版本时弹出Access denied for user root @ localhost (using password: YES)的解决方案
mysql8登录第一次遇到MYSQL_ROOT_PASSWORD时会自动把该密码尽兴登录,生成一个秘钥放在mysql的数据文件里面,命令里带的MYSQL_ROOT_PASSWORD密码是个参数,除了第一次运行mysql带上会设置密码生成秘钥,其他次启动而不是设置mysql的密码,而是作为参数去验证这个最初的秘钥是否核对正确,于是我进入挂载的data目录,发现我的猜想是对的。通过docker将服务部署完后,navicat连接报错,密码错误,于是我尝试进入mysql容器登录 发现也报错。
编程日记 2024/02/08 18:08:55
C++ STL精通之旅:向量、集合与映射等容器详解
STL 作为一个封装良好,性能合格的 C++ 标准库,在算法竞赛中运用极其常见。灵活且正确使用 STL 可以节省非常多解题时间,这一点不仅是由于可以直接调用,还是因为它封装良好,可以让代码的可读性变高,解题思路更清晰,调试过程往往更顺利。
编程日记 2024/02/07 09:13:30
Ubuntu使用Docker部署Nginx并结合内网穿透实现公网远程访问
cpolar安装成功后,在外部浏览器上访问Linux 的9200端口即:【http://服务器的局域网ip:9200】,使用cpolar账号登录,登录后即可看到cpolar web 配置界面,结下来在web 管理界面配置即可。如果有长期远程访问本地Nginx服务的需求,但又不想每天重新配置公网地址,还想地址好看又好记,那我推荐大家选择使用固定的二级子域名方式来远程访问。,点击左侧的预留,选择保留二级子域名,地区选择China VIP,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称。
编程日记 2024/02/06 12:11:04
Linux 磁盘空间占用率100%的排查
max-size 最大数值 , max-file 最大日志数,但一两个容器还好,但是如果有很多容器需要管理,这样就很不方便了,最好还是可以统一管理(全局修改)结果显示多条如下数据,这里最关键的指标就是使用百分比,这个值较高一般需要处理,或者明确知道自己项目或工作目录是哪个,就只要找对应的位置去处理即可。/var/lib/docker/overlay2 【文件系统】基于容器文件系统保存的数据会写到本机的此目录下,进行限制,以减少日志文件对存储空间的占用,以下配置分别为日志文件最大容量、最大日志文件数。
编程日记 2024/02/04 09:53:28
chatchat部署在ubuntu上的坑
2. 安装后把代理关闭,全局的代理改为手动,重新打开一个新的控制台。1. 安装前要开代理,注意要下载很多东西,流量大。
编程日记 2024/02/03 10:52:45
MySQL运行在docker容器中会损失多少性能
自从使用docker以来,就经常听说MySQL数据库最好别运行在容器中,性能会损失很多。一些之前没使用过容器的同事,对数据库运行在容器中也是忌讳莫深,甚至只要数据库跑在容器中出现性能问题时,首先就把问题推到容器上。
编程日记 2024/02/02 14:07:43
解决Linux环境下gdal报错:ERROR 4: `/xxx.hdf‘ not recognized as a supported file format.
题外话:我发现linux系统和Windows系统下面,库的版本是有差异的。比如我的本机Windows上装的是gdal3.2.3和numpy1.19.1,linux服务器上装的却是gdal3.0.2和numpy1.21.5。这个是很常见的回复,网上许多回答都说低版本的 gdal 不支持 hdf5,让你重装高版本的gdal。我之前用pip安装了whl,暴力装上了,但用的时候就会有问题。安装了不冲突的gdal之后,就成功打开文件啦~一开始我是抱着试试的心态,用conda,不用pip,重新安装了一下我的gdal。
编程日记 2024/01/30 14:36:06
VMware中CentOS 7解决网络问题
在 VMware 中使用 CentOS 7 中使用 ping www.baidu.com 出现未知的名称和服务的问题
编程日记 2024/01/29 17:54:59
Docker网络配置与自定义IP容器通信
互联网是由许多小型网络构成的,每个网络上都有许多主机,这样便构成了一个有层次的结构。IP地址在设计时就考虑到地址分配的层次特点,将每个IP地址都分割成网络号和主机号两部分,以便于 IP地址的寻址操作。
编程日记 2024/01/25 10:50:17
Docker数据持久化与数据共享
Docker部署了项目,但还有一个很重要的问题就是容器中产生的数据(比如log文件),容器一旦被删除,容器内的所有数据也就没有了,为了避免这个问题我们可以将数据存储到容器之外(比如宿主机),这样即使删除容器也不会丢失数据。一旦容器故障,我们可以重新创建一个容器,将数据挂载到容器里,就可以快速恢复。
编程日记 2024/01/23 14:01:55
Linux 服务器 CPU 详细信息查看、物理 CPU 以及逻辑 CPU
当两个线程都同时需要某一个资源时,其中一个要暂时停止,并让出资源,直到这些资源闲置后才能继续,因此超线程的性能并不等于两颗CPU的性能。超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算,进而兼容多线程操作系统和软件,查看CPU详细得知,服务器共有16个核心,物理CPU个数为 4,证明单个物理CPU上集成了4个核心处理器。日常我们所说的CPU核数指的是物理CPU上存在几个核心处理器或者核心处理单元总和(排除超线程技术)Linux内核支持关闭超线程技术。
编程日记 2024/01/23 11:01:35
浅谈ARM嵌入式中的根文件系统rootfs
这里设置 console 为 ttymxc0,因为 linux启动以后 I.MX6ULL 的串口 1 在 linux 下的设备文件就是/dev/ttymxc0,在 Linux 下,一切皆文件。/dev/mmcblk1、/dev/mmcblk0p1、/dev/mmcblk0p2、/dev/mmcblk1p1 和/dev/mmcblk1p2 这样的文件,其中/dev/mmcblkx(x=0~n)表示 mmc 设备,而/dev/mmcblkxpy(x=0。有这个“根”,其他的文件系统或者软件就别想工作。
编程日记 2024/01/22 16:07:14
linux配置DNS主从服务器
主服务器:OpenElur Linux IP地址为192.168.188.129。从服务器:RedHat Linux IP地址为192.168.188.128。2.配置主服务器的`解析配置文件。3.进行从服务器的基础配置。1.进行主服务器的基础配置。
编程日记 2024/01/22 15:19:35
Centos系统上安装PostgreSQL和常用PostgreSQL功能
PostgreSQL安装成功之后,会默认创建一个名为postgres的Linux用户,初始化数据库后,会有名为postgres的数据库,来存储数据库的基础信息,例如用户信息等等,相当于MySQL中默认的名为mysql数据库。权限代码:SELECT、INSERT、UPDATE、DELETE、TRUNCATE、REFERENCES、TRIGGER、CREATE、CONNECT、TEMPORARY、EXECUTE、USAGE。为了方便我们使用postgres账号进行管理,我们可以修改该账号的密码。
编程日记 2024/01/21 15:11:21
Docker之nacos的安装和使用
在上一期的博客分享中我们分享了有关Nginx的安装和使用,当然我们知道上一期的博客分享的是使用Nginx实现负载均衡。本期的博客文章基于上一期的Docker之Nginx安装的基础上,本期的。
编程日记 2024/01/19 10:43:54
Linux(Ubantu)交叉编译生成windows(32位,64位)可执行程序和库
与 mingw32 相比,mingw-w64 提供了对 64 位 Windows 应用程序的支持,并且通常被认为是更现代和更新的工具。这个选项通常用于 Unix-like 系统的编译器,用以指导链接器在生成可执行文件时保留符号信息,以便支持运行时的符号解析(例如用于动态加载库).该选项对于 Windows 下的编译是无效的,通过。(能够解析windows平台的可执行程序) 则能直接允许直接在linux环境中运行我们生成的win32的可执行程序(包括验证win32平台的动态库).
编程日记 2024/01/11 16:30:59
如何使用可视化管理工具DockerUI远程管理docker容器
DockerUI是一个docker容器镜像的可视化图形化管理工具。DockerUI可以用来轻松构建、管理和维护docker环境。它是完全开源且免费的。基于容器安装方式,部署方便高效,浏览和维护docker单节点或集群节点worker和manager。DockerUI具有易于使用的界面。它不需要记住 docker 指令。只需下载镜像即可立即加入并完成部署。使用DockerUI并结合cpolar内网穿透可以更加轻松的管理docker和swarm,实现后台公网访问并管理,视觉性更加直观,后台开发更加便利。
编程日记 2024/01/06 09:02:18
在 Docker 中配置 MySQL 数据库并初始化 Project 项目
这样,您就完成了在 Docker 中配置 MySQL 数据库并初始化 Project 项目的过程。希望这篇博客对您有所帮助!创建目录 /project/mysql 以及 /project/mysql_data。在每个 SQL 文件中,将 AUTO_INCREMENT 修改为 1。将准备好的 SQL 文件复制到 /project/mysql 目录。将 init.sql 放到 /project/mysql 目录。在 SQL 文件中插入管理员相关数据。在 SQL 文件中插入机型相关数据。1.4. 插入管理员。
编程日记 2024/01/05 16:29:56
如何使用Docker将.Net6项目部署到Linux服务器(三)
尤其在测试环境,多个项目公用一个nginx的情况很多,这个时候,如果多个项目的nginx配置都放在一个conf配置文件中,会特别混乱。按照nginx配置,它应该监听4012端口,然后找到根目录/usr/local/publish_2023/forum_manage_vue,访问我们的vue网站,可是却提醒我们,该网页无法显示。# 注意,还可以写域名,但是需要额外的配置,后面示例会介绍,这个实例是简单的测试服务器的nginx配置、不过多说明。在nginx下的conf中,找到配置文件nginx.conf。
编程日记 2023/12/31 11:48:34
Jupyter Notbook+cpolar内网穿透实现公共互联网访问使用数据分析工作
在数据分析工作中,使用最多的无疑就是各种函数、图表、代码和说明文档,这些复杂的内容不仅让使用的人头晕脑胀,也让普通的聊天工具一脸蒙圈。沟通工具不给力,就没法协同办公,可数据分析又离不开多人配合,所以Jupyter Notebook就成为大部分数据工作人员的必备工具。正如之前所说,Jupyter Notebook很适应复杂内容的沟通,因此现在也在机器学习、深度学习和教育工作中获得广泛应用。但Jupyter Notebook也有缺陷,就是被局限在局域网范围。
编程日记 2023/12/29 09:56:39