ubuntu18.04安装docker容器
Ubuntu镜像下载
https://mirrors.huaweicloud.com/ubuntu-releases/
docker安装
# 第一步、卸载旧版本docker
sudo apt-get remove docker docker-engine docker.io containerd runc# 第二步、更新及安装软件
lu@host:~$ curl -fsSL https://get.docker.com -o get-docker.sh
lu@host:~$ sudo sh get-docker.sh
# Executing docker install script, commit: e5543d473431b782227f8908005543bb4389b8de
+ sh -c apt-get update -qq >/dev/null
+ sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y -qq apt-transport-https ca-certificates curl >/dev/null
+ sh -c install -m 0755 -d /etc/apt/keyrings
+ sh -c curl -fsSL "https://download.docker.com/linux/ubuntu/gpg" | gpg --dearmor --yes -o /etc/apt/keyrings/docker.gpg
gpg: WARNING: unsafe ownership on homedir '/home/lu/.gnupg'
+ sh -c chmod a+r /etc/apt/keyrings/docker.gpg
+ sh -c echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu bionic stable" > /etc/apt/sources.list.d/docker.list
+ sh -c apt-get update -qq >/dev/null
+ sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y -qq docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-ce-rootless-extras docker-buildx-plugin >/dev/null
+ sh -c docker version
Client: Docker Engine - CommunityVersion: 24.0.2API version: 1.43Go version: go1.20.4Git commit: cb74dfcBuilt: Thu May 25 21:52:13 2023OS/Arch: linux/amd64Context: defaultServer: Docker Engine - CommunityEngine:Version: 24.0.2API version: 1.43 (minimum version 1.12)Go version: go1.20.4Git commit: 659604fBuilt: Thu May 25 21:52:13 2023OS/Arch: linux/amd64Experimental: falsecontainerd:Version: 1.6.21GitCommit: 3dce8eb055cbb6872793272b4f20ed16117344f8runc:Version: 1.1.7GitCommit: v1.1.7-0-g860f061docker-init:Version: 0.19.0GitCommit: de40ad0================================================================================To run Docker as a non-privileged user, consider setting up the
Docker daemon in rootless mode for your user:dockerd-rootless-setuptool.sh installVisit https://docs.docker.com/go/rootless/ to learn about rootless mode.To run the Docker daemon as a fully privileged service, but granting non-root
users access, refer to https://docs.docker.com/go/daemon-access/WARNING: Access to the remote API on a privileged Docker daemon is equivalentto root access on the host. Refer to the 'Docker daemon attack surface'documentation for details: https://docs.docker.com/go/attack-surface/================================================================================lu@host:~$ # 第三步、查看docker是否安装完成
lu@host:~$ docker -v
Docker version 24.0.2, build cb74dfc# 第四步、查看是否成功启动docker
lu@host:~$ systemctl status docker
● docker.service - Docker Application Container EngineLoaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)Active: active (running) since Sat 2024-05-11 15:17:44 CST; 1min 39s agoDocs: https://docs.docker.comMain PID: 15493 (dockerd)Tasks: 10CGroup: /system.slice/docker.service└─15493 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock5月 11 15:17:43 host systemd[1]: Starting Docker Application Container Engine...
5月 11 15:17:43 host dockerd[15493]: time="2024-05-11T15:17:43.435309035+08:00" level=info msg="Starting up"
5月 11 15:17:43 host dockerd[15493]: time="2024-05-11T15:17:43.441754095+08:00" level=info msg="detected 127.0.0.53 nameserver, assuming systemd-resolved, so using resolv.conf: /run
5月 11 15:17:43 host dockerd[15493]: time="2024-05-11T15:17:43.640102836+08:00" level=info msg="Loading containers: start."
5月 11 15:17:44 host dockerd[15493]: time="2024-05-11T15:17:44.219270950+08:00" level=info msg="Loading containers: done."
5月 11 15:17:44 host dockerd[15493]: time="2024-05-11T15:17:44.461539976+08:00" level=warning msg="WARNING: No swap limit support"
5月 11 15:17:44 host dockerd[15493]: time="2024-05-11T15:17:44.461699515+08:00" level=info msg="Docker daemon" commit=659604f graphdriver=overlay2 version=24.0.2
5月 11 15:17:44 host dockerd[15493]: time="2024-05-11T15:17:44.462969664+08:00" level=info msg="Daemon has completed initialization"
5月 11 15:17:44 host systemd[1]: Started Docker Application Container Engine.
5月 11 15:17:44 host dockerd[15493]: time="2024-05-11T15:17:44.575567013+08:00" level=info msg="API listen on /run/docker.sock"
lu@host:~$
docker常用指令
查看本地镜像
docker images
docker images -q # 查看所有镜像id
搜索镜像
docker search 镜像名称
查看容器
docker ps # 查看正在运行的容器
docker ps -a # 查看所有容器
拉取指定镜像
docker pull [images]:[version]# 例如:docker pull ubuntu:14.04
创建并启动容器
docker run 参数
创建容器并进入交互模式
sudo docker run -it ubuntu:14.04 bash# 这个命令会启动一个Ubuntu容器,并为您提供一个shell 来交互,shell 终端退出则容器会关闭。
创建容器后台运行
sudo docker run -d --name my_ubuntu ubuntu:14:04# 这个命令会以守护进程模式(-d)启动一个Ubuntu容器,并将其命名为 my_ubuntu。
# 关闭终端容器不会退出,要想进入交互模式需要docker exec指令
例子:
lu@host:~$ cat run_docker.sh
#/bin/bashexport MY_CONTAINER="ubuntu14.04-`whoami`"
num=`sudo docker ps -a|grep -w "$MY_CONTAINER$"|wc -l`
echo $num $MY_CONTAINER
if [ 0 -eq $num ];then
# --net=host:使容器共享宿主机的网络接口。--ipc=host:使容器可以访问宿主机的 IPC 资源。--pid=host : 使容器可以访问宿主机的进程。
# --privileged:给予容器扩展的权限,允许容器访问宿主机上的所有设备,并运行一些通常被禁止的操作.
sudo docker run \--net=host --ipc=host --pid=host \-it --privileged --name $MY_CONTAINER \-v $PWD:/home/share ubuntu:14.04 bash
elsesudo docker start $MY_CONTAINERsudo docker exec -ti $MY_CONTAINER /bin/bash
fi
lu@host:~$
参数:
--net=host:使容器使用宿主机的网络命名空间,这意味着容器将共享宿主机的网络接口。
--ipc=host:使容器使用宿主机的 IPC 命名空间,这意味着容器可以访问宿主机的 IPC 资源。
--pid=host:使容器使用宿主机的 PID 命名空间,这意味着容器可以访问宿主机的进程。
-it:以交互模式(-i)运行容器,并为容器分配一个伪终端(-t)。
--privileged:给予容器扩展的权限,允许容器访问宿主机上的所有设备,并运行一些通常被禁止的操作。
--name $MY_CONTAINER:指定容器的名称为环境变量MY_CONTAINER的值。
-v $PWD:/home/lu:将当前工作目录($PWD)挂载到容器中的/home/lu目录。这允许您从宿主机访问和修改容器中的文件。
ubuntu:14.04:使用ubuntu:14.04Docker 镜像来创建容器。这个镜像是一个基于 Ubuntu 14.04 的环境。
bash:容器启动后执行的命令,这里是一个 Bash shell,允许您在容器中执行命令。
启动容器
# 通过docker start命令来启动已部署的容器服务。
docker start 容器名称
进入容器
# 容器启动后,进入终端交互模式
docker exec 参数
停止容器
# 非交互模式下,通过docker stop命令来停止已部署的容器服务。
docker stop 容器名称# 如果创建容器的同时进入到交互模式下,通过exit退出终端来停止容器# 如果是使用 docker exec进入的交互模式:
# 那么退出容器只需要关闭终端或输入exit 命令不会关闭容器,必须通过docker stop命令来停止。
删除容器
docker rm 容器名称
删除镜像
docker rmi [imageID]
相关文章:
ubuntu18.04安装docker容器
Ubuntu镜像下载 https://mirrors.huaweicloud.com/ubuntu-releases/ docker安装 # 第一步、卸载旧版本docker sudo apt-get remove docker docker-engine docker.io containerd runc# 第二步、更新及安装软件 luhost:~$ curl -fsSL https://get.docker.com -o get-docker.sh …...
202212青少年软件编程(Python)等级考试试卷(二级)
第 1 题 【单选题】 运行下列程序, 最终输出的结果是? ( ) info = {1:小明, 2:小黄,3:小兰}info[4] = 小红info[...
单播、组播、广播
概念 单播(Unicast) 单播是网络中最常用、最基本的通信方式。在单播通信中,数据包从一个节点发送到特定的另一个节点。换句话说,发送端和接收端之间建立一对一的连接,然后进行数据传输。 例如&#x…...
吴恩达深度学习笔记:深度学习的 实践层面 (Practical aspects of Deep Learning)1.13-1.14
目录 第二门课: 改善深层神经网络:超参数调试、正 则 化 以 及 优 化 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)第一周:深度学习的 实践层面 (Practical aspects of Deep Learning)1.13 梯度检验&#…...
笔试强训未触及题目(个人向)
1.DP22 最长回文子序列 1.题目 2.解析 这是一个区间dp问题,我们让dp[i][j]表示在区间[i,j]内的最长子序列长度,如图: 3.代码 public class LongestArr {//DP22 最长回文子序列public static void main(String[] args) {Scanner…...
【YOLO改进】换遍MMDET主干网络之EfficientNet(基于MMYOLO)
EfficientNet EfficientNet是Google在2019年提出的一种新型卷积神经网络架构,其设计初衷是在保证模型性能的同时,尽可能地降低模型的复杂性和计算需求。EfficientNet的核心思想是通过均衡地调整网络的深度(层数)、宽度࿰…...
uniapp下拉选择组件
uniapp下拉选择组件 背景实现思路代码实现配置项使用尾巴 背景 最近遇到一个这样的需求,在输入框中输入关键字,通过接口查询到结果之后,以下拉框列表形式展现供用户选择。查询了下uni-app官网和项目中使用的uv-ui库,没找到符合条…...
高斯数据库创建函数的语法
CREATE FUNCTION 语法格式 •兼容PostgreSQL风格的创建自定义函数语法。 CREATE [ OR REPLACE ] FUNCTION function_name ( [ { argname [ argmode ] argtype [ { DEFAULT | : | } expression ]} [, …] ] ) [ RETURNS rettype [ DETERMINISTIC ] | RETURNS TABLE ( { column_…...
【.NET Core】你认识Attribute之CallerMemberName、CallerFilePath、CallerLineNumber三兄弟
你认识Attribute之CallerMemberName、CallerFilePath、CallerLineNumber三兄弟 文章目录 你认识Attribute之CallerMemberName、CallerFilePath、CallerLineNumber三兄弟一、概述二、CallerMemberNameAttribute类三、CallerFilePathAttribute 类四、CallerLineNumberAttribute 类…...
ubuntu删除opencv
要完全删除OpenCV 3.4.5版本,你可以按照以下步骤进行操作: 卸载OpenCV库: 首先,你需要卸载OpenCV 3.4.5版本。可以使用以下命令卸载OpenCV库: sudo apt-get purge libopencv*这将删除OpenCV库及其相关文件。 删除O…...
K8s源码分析(二)-K8s调度队列介绍
本文首发在个人博客上,欢迎来踩! 本次分析参考的K8s版本是 文章目录 调度队列简介调度队列源代码分析队列初始化QueuedPodInfo元素介绍ActiveQ源代码介绍UnschedulableQ源代码介绍**BackoffQ**源代码介绍队列弹出待调度的Pod队列增加新的待调度的Podpod调…...
OpenGL ES 面试高频知识点(二)
说说纹理常用的采样方式? 最邻近点采样(GL_NEAREST)和双线性采样(GL_LINEAR)。 GL_NEAREST 采样是 OpenGL 默认的纹理采样方式,OpenGL 会选择中心点最接近纹理坐标的那个像素,纹理放大的时候会有锯齿感或者颗粒感。 **GL_LINEAR 采样会基于纹理坐标附近的纹理像素,计…...
2024第十六届“中国电机工程学会杯”数学建模A题B题思路分析
文章目录 1 赛题思路2 比赛日期和时间3 竞赛信息4 建模常见问题类型4.1 分类问题4.2 优化问题4.3 预测问题4.4 评价问题 5 建模资料 1 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 2 比赛日期和时间 报名截止时间:2024…...
面向对象的三大特性:封装、继承、多态
一、封装 封装是面向对象的核心思想。是以类为载体,将对象的属性和行为封装起来,对外隐藏其实现细节。 封装保证了类内部数据结构的完整性,使得外部(使用该类的用户)不能轻易地直接操作此数据结构,只能执…...
目标检测YOLO实战应用案例100讲-基于深度学习的交通场景多尺度目标检测算法研究与应用(中)
目录 3.4 实验结果与分析 深度融合注意力跨尺度复合空洞残差交通目标检测算法...
前端GET请求下载后端返回数据流文件,并且处理window.open方法跳转白屏方法
平时常用导出都是用window.open方法 点击跳转连接:使用 window.open 下载 const downError 地址?&参数${参数|| }; const downError Url/xxx/xxx?&orgId${orgId || };window.open(downError, "_self");//调用window.open方法导出 而使用…...
SD321放大器3V输入电流电压保护二极管25C电源电流
Sd 321运算放大器可以在单电源或双电源电压下工作, 可以使用最坏情况下的非反相单位增益连接来适应。如 具有真微分输入,并且保持在线性模式,输入共模电压 果放大器必须驱动较大的负载电容,则应使用较大的闭 为0。Vpc-这种放大器可…...
geoserver SQL注入、Think PHP5 SQL注入、spring命令注入
文章目录 一、geoserver SQL注入CVE-2023-25157二、Think PHP5 SQL注入三、Spring Cloud Function SpEL表达式命令注入(CVE-2022-22963) 一、geoserver SQL注入CVE-2023-25157 介绍:GeoServer是一个开源的地理信息系统(GIS&#…...
scrapy的入门
今天我们先学习一下scrapy的入门,Scrapy是一个快速的高层次的网页爬取和网页抓取框架,用于爬取网站并从页面中提取结构化的数据。 1. scrapy的概念和流程 1.1 scrapy的概念 我们先来了解一下scrapy的概念,什么是scrapy: Scrapy是一个Python编写的开源网络爬虫框架…...
大数据Scala教程从入门到精通第七篇:Scala在IDEA中编写Hello World
一:Scala在IDEA中编写Hello World 想让我们的idea支持scala的编写,需要安装一个插件。...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看
文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...
HubSpot推出与ChatGPT的深度集成引发兴奋与担忧
上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...
FFmpeg avformat_open_input函数分析
函数内部的总体流程如下: avformat_open_input 精简后的代码如下: int avformat_open_input(AVFormatContext **ps, const char *filename,ff_const59 AVInputFormat *fmt, AVDictionary **options) {AVFormatContext *s *ps;int i, ret 0;AVDictio…...
