Docker的Ubuntu上的安装教程及相关命令
一、简介
Docker 是一个开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,这个容器是完全使用沙箱机制(限制容器内部对系统资源的访问),更重要的是容器性能开销极低。
正是因为Docker的各种特性,我们常用Docker来部署Web开发环境以及Web应用的发布。
二、安装教程
1、准备工作
不知道在干嘛,那就贴上去就完事了,注意docker的很多相关命令都需要管理员权限
(1)、更新软件包(有必要就换源)
sudo apt update
sudo apt upgrade
(2)、安装docker依赖
apt-get install ca-certificates curl gnupg lsb-releasev
(3)、添加Docker官方GPG密钥
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg
sudo apt-key add -
(4)、添加Docker软件源
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
2、安装
(1)、安装命令确实就一句话
apt-get install docker-ce docker-ce-cli containerd.io
(2)、配置用户组,需要重启生效
sudo usermod -aG docker $USER
三、相关命令
下面的命令会以hznuoj为例,替换为自己想要用的镜像即可
1、镜像相关命令
(1)、拉取镜像。命令可以从Docker Hub直接复制,使用冒号指定版本号(tag),没有默认最新
docker pull hznuoj/hznuoj:latest
(2)、启动镜像。参数配置如下:
- -d 指定容器运行于前台还是后台,默认为false
- -it 加上之后即不与启动的镜像交互(其实是 -i -t )
- --restart=always 指定容器停止后的重启策略:
- no:容器退出时不重启
- on-failure:容器故障退出(返回值非零)时重启
- always:容器退出时总是重启
- -p 指定端口映射,即容器内的端口(冒号右侧)映射到主机(冒号左侧)
端口映射:端口映射就是将容器内主机的一个端口映射到容器外主机的一个端口,提供相应的服务。当用户访问容器外IP的这个端口时,自动将请求映射到容器内的机器上。
- --name 启动的这个容器的名字,注意名字不能重复,即id
- -v 路径挂载,将内容内部文件(冒号右侧)挂载到主机(冒号左侧),注意:如果本机没有对应的文件/文件夹,默认生成文件夹,所以挂载之前需要提前创建好
挂载:挂载后容器外部文件发生改变同步到容器内部,从而实现数据同步,方便进行Web开发
sudo docker run \-d -it \--name=hznuoj \--restart=always \-p 80:80 \-v /var/hznuoj/static.php:/var/www/web/OJ/include/static.php \-v /var/hznuoj/upload:/var/www/web/OJ/upload \-v /var/hznuoj/data:/var/hznuoj/data \hznuoj/hznuoj:latest
(3)查看镜像
docker images
(4)、删除镜像。 -f 即force强制删除
docker rmi 镜像名/镜像ID
docker rmi -f 镜像名/镜像ID
2、容器相关命令
镜像相当于一个对象,那么容器就是一个实例
(1)、查看当前正在运行的容器
docker ps
(2)、开始、暂停、重启容器
docker start 容器ID/容器名
docker stop 容器ID/容器名
docker restart 容器ID/容器名
(3)、文件拷贝
从容器外拷贝到容器内,从容器内拷贝到容器外均可
docker cp mysql:/tmp/db.sql ~/db.sql
docker cp ~/db.sql mysql:/tmp/db.sql
(4)、删除容器。注意删除之前需要先stop
docker stop 容器名/容器ID
docker rm 容器名/容器ID
docker rm -f 容器名/容器ID
(5)、进入、退出容器
docker exec -it 容器名/容器ID
exit
四、从本地上传到dockerhub
1、启动容器
2、登录
docker login
3、commit
docker commit hznuoj hznuoj:latest
4、打tag
docker tag hznuoj:latest dzy521/hznuoj:latest
5、push到dockerhub
docker push dzy521/hznuoj:latest
相关文章:
Docker的Ubuntu上的安装教程及相关命令
一、简介 Docker 是一个开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,这个容器是完全使用沙箱机制(限制容器内部对系统资源的访问),更重要的是容器性能开销极低。 正是因为…...
一些常见的nacos问题和答案
什么是Nacos?它的作用是什么? Nacos是一个动态服务发现、配置管理和服务管理平台。它的作用是帮助应用程序实现服务注册与发现、动态配置管理和服务健康管理等功能。 Nacos的核心功能包括哪些: 服务注册与发现:Nacos支持基于DN…...

华为OD机22道试题
华为OD机试题 2.查找小朋友的好朋友位置 在学校中,N 个小朋友站成一队,第 i 个小朋友的身高为 height[i],第 i 个小朋友可以看到第一个比自己身高更高的小朋友j,那么 j 是 i 的好朋友 (要求:j>i) 。 请重新生成一个…...

什么是Prompt Tuning?
本文是观看视频What is Prompt Tuning?后的笔记。 大语言模型(如ChatGPT )是基础模型,是经过互联网上大量知识训练的大型可重用模型。 他们非常灵活,同样的模型可以分析法律文书或撰写文章。 但是,如果我们需要用其解…...
正则表达式篇
文章目录 1. 导入re模块2. 正则表达式的基本模式3. re模块的主要函数和方法4. 示例 正则表达式(Regular Expression,常简写为regex或regexp)是一种强大的文本处理工具,它使用一种特殊的字符序列来帮助用户检查一个字符串是否与某种…...
CAST(columnA AS VARCHAR(255)) AS fieldA报错的问题
列类型转换,不能使用VARCHAR,是能使用CHAR 应该改为: CAST(columnA AS CHAR(255)) AS fieldA报错的问题...

github加速神器!解决github巨慢的问题,并且能够加速下载!另外推荐GitKraken -- 超好用的 Git 可视化工具
FastGithub github加速神器,解决github打不开、用户头像无法加载、releases无法上传下载、git-clone、git-pull、git-push失败等问题。 下载地址: 清华云盘 2 部署方式 2.1 windows-x64桌面 双击运行FastGithub.UI.exe 2.2 windows-x64服务 fastgi…...

Stable Diffusion XL之使用Stable Diffusion XL训练自己的AI绘画模型
文章目录 一 SDXL训练基本步骤二 从0到1上手使用Stable Diffusion XL训练自己的AI绘画模型2.1 配置训练环境与训练文件2.2 SDXL训练数据集制作(1) 数据筛选与清洗(2) 使用BLIP自动标注caption(3) 使用Waifu Diffusion 1.4自动标注tag(4) 补充标注特殊tag(5) 训练数据预处理(标注…...

软件杯 深度学习 机器视觉 人脸识别系统 - opencv python
文章目录 0 前言1 机器学习-人脸识别过程人脸检测人脸对其人脸特征向量化人脸识别 2 深度学习-人脸识别过程人脸检测人脸识别Metric Larning 3 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习 机器视觉 人脸识别系统 该项目…...

IDEA | 资源文件中文乱码问题解决
问题 IDEA打开资源文件,显示乱码问题。 解决方案 1、电脑是mac,点击IDEA->【Preferences】->【Editor】->【File Encodings】 2、选择【Properties Files】中的UTF-8,并勾选Transparent native-to-ascii conversion。 3、最后点击…...

Linux系统使用Docker部署Portainer结合内网穿透实现远程管理容器和镜像
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

【Git篇】复习git
文章目录 🍔什么是git⭐git和svn的区别 🍔搭建本地仓库🍔克隆远程仓库🛸git常用命令 🍔什么是git Git是一种分布式版本控制系统,它可以追踪文件的变化、协调多人在同一个项目上的工作、恢复文件的旧版本等…...

[LitCTF 2023]程序和人有一个能跑就行了
新知识 seh 表面上的逻辑蛮简单的 int __cdecl main(int argc, const char **argv, const char **envp) {_DWORD *v3; // eax_DWORD *v5; // eaxchar *v6; // eaxint v7; // [esp0h] [ebp-2ACh] BYREFint v8; // [esp14h] [ebp-298h]int *v9; // [esp18h] [ebp-294h]int v10;…...

如何在群晖NAS搭建bitwarden密码管理软件并实现无公网IP远程访问
前言 作者简介: 懒大王敲代码,计算机专业应届生 今天给大家聊聊如何在群晖NAS搭建bitwarden密码管理软件并实现无公网IP远程访问,希望大家能觉得实用! 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖&am…...
perl:获取同花顺数据--业绩快报,业绩公告
perldoc LWP::UserAgent 如果没有安装,则安装模块,运行 cpanm LWP::UserAgent 。 编写 get_yjkb_10jqka.pl 如下 #!/usr/bin/perl # perl 获取同花顺数据--业绩快报 use LWP::UserAgent; use Encode qw(decode encode); use POSIX; use Data::Dump…...
FPGA选型
开发FPGA的第一步,就是选择一片符合设计需求的芯片。 专用资源 选片第一个关注的应该是FPGA器件的专用资源。例如是否需要高速接口,如果需要的话,需要多少个通道,各个通道需要的最高收发速度是多少。同样,如果需要实…...

centos系统的root密码忘记或失效的解决办法(超详细)
文章目录 1、概述2、现象描述3、解决步骤3.1 进入单机维护模式3.2 修改启动参数3.3 在维护模式下修改密码3.4 重启 4、总结 1、概述 在Linux系统中,root用户是最高权限的用户,可以执行任何命令和操作。但是,如果我们忘记了root用户的密码&…...

【Android 源码】Android源码下载指南
文章目录 前言安装Repo初始化Repo选择分支没有梯子替换为清华源 有梯子 下载源码下载开始参考 前言 这是关于Android源码下载的过程记录。 环境:Windows上通过VMware安装的Ubuntu系统 安装Repo 创建Repo文件目录 mkdir ~/bin PATH~/bin:$PATH下载Repo工具&#…...

MySQL数据库高级语句
文章目录 MySQL高级语句older by 排序区间判断查询或与且(or 与and)嵌套查询(多条件)查询不重复记录distinctcount 计数限制结果条目limit别名as常用通配符嵌套查询(子查询)同表不同表嵌套查询还能用于删除…...

软件测试【理论基础】
软件测试的IEEE定义:使用人工或自动的手段来运行或测量软件系统的过程,目的是检验软件系统是否满足规定的需求,并找出与预期结果之间的差异。 软件测试的发展趋势: ① 测试工作将进一步前移。软件测试不仅仅是单元测试、集成测试、系统测试…...

SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...

dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...

相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...

有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
稳定币的深度剖析与展望
一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...
Mobile ALOHA全身模仿学习
一、题目 Mobile ALOHA:通过低成本全身远程操作学习双手移动操作 传统模仿学习(Imitation Learning)缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...
Go语言多线程问题
打印零与奇偶数(leetcode 1116) 方法1:使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...