当前位置: 首页 > news >正文

docker 安装常用环境

什么是容器

作为稍懂服务器的人都知道服务器是有系统的,一般来说是linux系统,我们可以在里边操作各种,比如说安装nginx、部署服务、数据库等。简单来说,容器理解成一个超精简的linux系统,可以进入这个系统进行安装各种服务,我们从网上pull下来的快照(image)就相当于 一个精简的linux系统,里边安装了需要的服务,如 nginx的快照相当于精简linux里安装了个nginx。下载下来的快照(image)启动后生成容器,我们进入容器,依然可以对容器内的东西指手画脚。

下边的内容主要将 完整的功能放在了 “ 安装linux(完整)” 里,其他的都是精简可用,不做过多重复

一、 安装linux(完整)

目前为止docker hub 还是被封着,用阿里云、腾讯云镜像找一找版本直接查就行
默认使用latest最新版

 #:latest 可以不写。
docker pull centos:latest 
# 拉取后查看 images
docker images
#给镜像设置标签
# docker tag [images的IMAGE_ID列的值] [名字:版本]
# 例如:docker tag 5d0da3dc9764 mycentos:V1# 删除image 
#docker rmi [IMAGE_ID的值或者 名字:版本]
#例如
docker rmi 5d0da3dc9764 

docker 启动镜像

# -i 交互
# -t 终端
# -d 可后台运行
# --name 生成container 的名字
# docker run -itd --name="[自定义名字]"  [image的id 或者镜像名字:版本号]
# 例如
docker run -itd --name="testMyCentos"  mycentos:V1
# 查看启动的程序
docker ps
# 查看所有程序
docker ps -a#启动的老三样 start  restart stop 
# docker start [container的id或者name] 这里的id就不是image的id了,不是同一个东西喔
# 例如
docker start 6d6981426274#移除container
#docker rm   [container的id或者name]
#例如
docker rm 6d6981426274

在这里插入图片描述

进入镜像中

docker attach
# exec 的时候退出不会停止container 但attach会
docker exec
#进入后就是一个正常的系统啦
#  exec需要参数 例如docker exec -it d82b7255ba57 /bin/bash

在这里插入图片描述

查看ip、ping、以及保存新镜像

# 查看ip
# 进容器先更新apt
apt-get update
# 加载net网络
apt install net-tools
# 加载 ping
apt-get install inetutils-ping
# 如上,我们在容器中加入了一些新的东西,为了方便后续使用,可以保存新的image
# 这样我们使用自己保存的image 生成的容器就会自带 net网络和 ping,当然加入其他属性也是一样的
# 退出容器
exit# 复制镜像
#docker commit -m= "描述信息" -a="作者" [要复制的容器的IMAGE_ID列的值] [名字:版本]
# 例如
docker commit -m="test" -a="vace" 5d0da3dc9764 vace/centos:v1
# 查看image

在这里插入图片描述

查看网络端口号、进程、底层信息、日志

#查看网络端口号
docker port 6d6981426274
# 查看docker 的进程
docker top 6d6981426274
#查看docker 的底层信息
docker inspect 6d6981426274
# 日志查看
docker logs -f 6d6981426274

容器的导入和导出

#导出容器
# docker export [容器的id] > ubuntu.tar
#例如
docker export d82b7255ba57 > mysql.tar
# 导入容器
# cat [当前目录下直接地址或者根目录地址] | docker import - [名字:版本]
cat mysql.tar | docker import - test/mysql:v1
# 或使用 远程地址
docker import http://localhost/repo/docker/mysql.tar test/mysql:v1

在这里插入图片描述

二、 安装ubuntu(精简)

# 拉image
docker pull ubuntu:latest
# 查询
docker images
# 运行
docker run -itd --name myUbuntu ubuntu
#查容器
docker ps

三、 安装nginx (精简)

docker pull nginx:latest
docker images
# -d 可后台运行
# -p 指定物理机端口号和容器端口号进行绑定 -P不指定端口号(默认)
docker run --name myNginx -p 8080:80 -d nginx

在这里插入图片描述

配置nginx

方案一: 将nginx容器里的config文件复制出来,编辑后再放进去

docker cp accfb55471fd:/etc/nginx/nginx.conf nginx.conf
# 编辑完成将文件放回去
docker cp nginx.conf accfb55471fd:/etc/nginx/nginx.conf 
# 重启nginx

在这里插入图片描述

方案二: nginx容器中安装 vim

# 进容器先更新apt
apt-get update
# 安装 vim
apt install vim
# 接下来 就可以正常编辑 config文件啦
vim -v /etc/nginx/nginx.conf
# 重启nginx

方案三:使用 Dockerfile 重构容器
在这里插入图片描述

关于nginx.config
在这里可以直接用 虚拟ip ,也可以用桥接网络的容器名(需要单独设置网络喔)
详情看 “五. 网络连接”

四. 安装mysql

docker pull mysql:8.0.19
docker images
docker run -itd --name myMysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

进入容器添加用户权限

# 进入容器
# docker exec -it [容器id] /bin/bash
#  exec需要参数 例如docker exec -it d82b7255ba57 /bin/bash
#输入密码 MYSQL_ROOT_PASSWORD的值,这里是 123456
mysql -uroot -p
#进入mysql 创建用户,外网可访问
CREATE USER 'user'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
GRANT ALL PRIVILEGES ON *.* TO 'user'@'%';
show grants for 'user'@'%';
FLUSH PRIVILEGES;
# 退mysql
exit;
# 退容器
exit;

在这里插入图片描述

五. 网络连接

创建网络连接可以允许容器间的互相通信

docker network create -d bridge myNetwork# 创建network 连接
# 方法一
docker network connect myNetwork myMysql
docker network connect myNetwork myNginx
#重新启动容器
docker restart myMysql
docker restart myNginx# 方法二 在创建容器的时候直接添加网络 --network
#docker run -itd --name myMysql --network myNetwork -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
#docker run --name myNginx -p 8080:80 -d nginx

调试

进入其中一个容器docker exec -it d82b7255ba57 /bin/bash
apt-get update
apt-get install inetutils-ping
ping myNginx

在这里插入图片描述
在这里插入图片描述
查看网络

# 查看所有网络
docker network ls
# 创建容器时默认会将容器添加进bridge 的网络中, ping ip的时候是可以ping通的
#  查看网络明细
docker network inspect 900b057a1f53
# 其中的"Containers"中的内容就代表了当前网络下的所有容器地址

在这里插入图片描述

在这里插入图片描述

相关文章:

docker 安装常用环境

什么是容器 作为稍懂服务器的人都知道服务器是有系统的,一般来说是linux系统,我们可以在里边操作各种,比如说安装nginx、部署服务、数据库等。简单来说,容器理解成一个超精简的linux系统,可以进入这个系统进行安装各种…...

git clone慢的解决办法

在网站 https://www.ipaddress.com/ 分别搜索: github.global.ssl.fastly.net github.com 得到ip: 打开hosts文件 sudo vim /etc/hosts 在hosts文件末尾添加 140.82.114.3 github.com 151.101.1.194 github.global-ssl.fastly.net 151.101.65.194 g…...

Picasso网络原生PICA Token通过XCM集成进入Moonriver生态

波卡上的首选多链开发平台Moonbeam宣布Moonriver和Picasso(分别为Moonbeam和Composable Finance的Kusama对应平行链)已达成XCM集成。该集成将Picasso的PICA Token引入Moonriver生态系统使用,并允许用户在Picasso网络上使用MOVR。两条平行链都…...

STM32 CAN通信自定义数据包多帧连发乱序问题

场景: can标准帧中每一帧只能传输8字节,而应用中传输一包的内容往往超过8字节,因此需要把一个包拆成多个帧发送,接收端才把收到的多帧重新组装成一个完整的包 问题描述 在一问一答的两块板间通信,多帧连发是能够按照…...

STM32 配置中断常用库函数

单片机学习 目录 一、配置AFIO相关库函数 1.1函数GPIO_AFIODeInit 1.2函数GPIO_EventOutputConfig 1.3函数GPIO_EventOutputCmd 1.4函数GPIO_EXTILineConfig 二、配置EXTI相关库函数 2.1函数EXTI_DeInit 2.2函数EXTI_Init 2.3函数EXTI_StructInit 2.4函数 EXTI_Gener…...

性能测试常见的指标详解

一、什么是性能测试 性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。 我们可以认为性能测试是:通过在测试环境下对系统或构件的性能进行探测,用以验证在生产环境下系统性能是否达到预估的性能需求…...

【键盘变成了快捷键,怎么办?】

**最便捷的操作:**拔掉键盘有线插头,将键盘驱动进行卸载,重新插上键盘即可 键盘驱动如何卸载: 以win10为例,点击开始菜单栏选择设置 选择左上角系统 选择系统中,点击最下方关于,点击右侧的设备管理器 选…...

LeetCode Hot100 105.从前序与中序遍历序列构造二叉树

题目&#xff1a;给定两个整数数组 preorder 和 inorder &#xff0c;其中 preorder 是二叉树的先序遍历&#xff0c; inorder 是同一棵树的中序遍历&#xff0c;请构造二叉树并返回其根节点。 代码&#xff1a; class Solution {private Map<Integer, Integer> indexM…...

今天先水一章

水贴&#xff0c;可自动忽略...

网页设计作业-音乐网站首页

效果图 网盘链接 链接&#xff1a;https://pan.baidu.com/s/1CO4jAOY0zk1AWTx_pC3UmA?pwdfuck 提取码&#xff1a;fuck...

【2023 云栖】阿里云刘一鸣:Data+AI 时代大数据平台建设的思考与发布

云布道师 本文根据 2023 云栖大会演讲实录整理而成&#xff0c;演讲信息如下&#xff1a; 演讲人&#xff1a;刘一鸣 | 阿里云自研大数据产品负责人 演讲主题&#xff1a;DataAI 时代大数据平台应该如何建设 今天分享的主题是 DataAI 时代大数据平台应该如何建设&#xff0…...

【DP】mobiusp正在创作乐曲

输入样例1&#xff1a; 5 2 1 7 7 1 3 输出样例1&#xff1a; 2 输入样例2&#xff1a; 10 3 2 5 6 4 4 5 7 3 5 6 输出样例2&#xff1a; 1 #include<iostream> #include<cstring> #include<algorithm> #include<vector> using namespace std; typede…...

docker国内镜像加速

创建或修改 /etc/docker/daemon.json 文件&#xff0c;修改为如下形式 {"registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"] } Docker中国区官方镜像htt…...

Calling PeopleTools APIs 调用PeopleTools API

Calling PeopleTools APIs 调用PeopleTools API You can call all of the PeopleTools APIs from an Application Engine program. When using APIs, remember that: 您可以从应用程序引擎程序调用所有PeopleTools API。使用API时&#xff0c;请记住: All the PeopleTools …...

强化学习,快速入门与基于python实现一个简单例子(可直接运行)

文章目录 一、什么是“强化学习”二、强化学习包括的组成部分二、Q-Learning算法三、迷宫-强化学习-Q-Learning算法的实现全部代码&#xff08;复制可用&#xff09;可用状态空间检查是否超出边界epsilon 的含义更新方程 总结 一、什么是“强化学习” 本文要记录的大概内容&am…...

【手写实现一个简单版的Dubbo,深刻理解RPC框架的底层实现原理】

手写实现一个简单版的Dubbo&#xff0c;深刻理解RPC框架的底层实现原理 RPC框架简介了解Dubbo的实现原理服务暴露服务引入服务调用 手写实现一个简单版的Dubbo服务暴露ServiceBeanProxyFactory#getInvokerProtocol#exportRegistryProtocol#export 服务引入RegistryProto#referD…...

计数问题+约瑟夫问题(map)

目录 一、计数问题 二、约瑟夫问题 一、计数问题 #include<iostream> #include<map> using namespace std; int main() {int n,x;cin>>n>>x;map<int,int>m;for(int i1;i<n;i){if(i>1 && i<10){m[i];}else{int temp i;while (…...

Maven聚合项目发布至私服指定模块

无论是从事框架开发工作还是公共服务模块开发&#xff0c;为了解决通用性问题&#xff0c;常常需要发布一些依赖组件至maven私服。然而通常我们得maven工程都是由多个模块组成得聚合工程&#xff08;一个父工程下有多个模块&#xff09;。 这个时候可能会面临两个窘境&#xf…...

SpringCloud 微服务全栈体系(十六)

第十一章 分布式搜索引擎 elasticsearch 六、DSL 查询文档 elasticsearch 的查询依然是基于 JSON 风格的 DSL 来实现的。 1. DSL 查询分类 Elasticsearch 提供了基于 JSON 的 DSL&#xff08;Domain Specific Language&#xff09;来定义查询。常见的查询类型包括&#xff1…...

「快学Docker」监控和日志记录容器的健康和性能

「快学Docker」监控和日志记录容器的健康和性能 1. 容器健康状态监控2. 性能监控3. 日志记录几种采集架构图 4. 监控工具和平台cAdvisor&#xff08;Container Advisor&#xff09;PrometheusGrafana 5. 自动化运维 1. 容器健康状态监控 方法1&#xff1a;需要实时监测容器的运…...

Node-RED实战:从零构建轻量级MQTT Broker

1. 为什么选择Node-RED搭建MQTT Broker 最近在做一个智能家居项目&#xff0c;需要快速搭建一个本地的MQTT服务器来连接各种设备。原本考虑用Mosquitto这类专业方案&#xff0c;但发现配置起来太麻烦。后来发现Node-RED的aedes节点简直是个宝藏——5分钟就能搭好一个轻量级MQTT…...

用Verilog在FPGA上实现一个多功能数字钟:从模块划分到上板调试的完整流程

基于FPGA的多功能数字钟工程实践&#xff1a;从模块化设计到硬件调试全解析 在嵌入式系统开发领域&#xff0c;FPGA因其并行处理能力和硬件可重构特性&#xff0c;成为数字系统设计的理想平台。本文将深入探讨如何利用Verilog HDL在FPGA上实现一个具备计时、闹钟、日期显示和秒…...

JetsonNano实战(五):ARM架构下的PyTorch与Torchvision环境搭建全攻略

1. 为什么Jetson Nano需要特殊版本的PyTorch 第一次接触Jetson Nano的开发者经常会遇到一个困惑&#xff1a;为什么直接从PyTorch官网下载的安装包无法使用&#xff1f;这其实涉及到计算机体系结构的一个关键差异。我们日常使用的笔记本电脑和台式机&#xff0c;绝大多数采用的…...

别再只改分压电阻了!深入拆解LLC电源(以CM6901为例)大范围调压的真正难点

深入解析LLC谐振电源调压技术&#xff1a;从CM6901实战看设计难点与解决方案 1. 理解LLC谐振变换器的核心特性 LLC谐振变换器作为第三代开关电源的典型代表&#xff0c;其工作机理与传统PWM变换器存在本质差异。许多工程师初次接触LLC设计时&#xff0c;常会带入反激或正激变换…...

从零到一:三维重建技术全流程解析

从零到一&#xff1a;三维重建技术全流程解析 三维重建技术正在重塑我们与数字世界的交互方式。想象一下&#xff0c;仅凭几张普通照片就能在计算机中还原出物体的三维形态——这项看似科幻的能力&#xff0c;如今已成为医疗影像、工业检测、文化遗产保护等领域的常规操作。不…...

VLN 与世界模型的关系

先唠两句&#xff1a;参数就像餐厅点单 把API想象成一家餐厅的“后厨系统”。 ? 路径参数/dishes/{dish_id} -> 好比你要点“宫保鸡丁”这道具体的菜&#xff0c;它是菜单&#xff08;资源路径&#xff09;的一部分。查询参数/dishes?spicytrue&typeSichuan -> 好比…...

易语言实现圆弧长度计算

在易语言中计算圆弧长度&#xff0c;尤其是基于凸度&#xff08;Bulge&#xff09;和端点坐标的实现&#xff0c;需要将几何公式转换为具体的代码逻辑。以下是针对不同已知条件的详细实现方法&#xff0c;特别是凸度与端点场景。 一、 核心几何公式与易语言实现基础 圆弧长度…...

网络工程师必看:H3C与华为认证体系的前世今生及备考选择指南

网络工程师职业认证全攻略&#xff1a;H3C与华为认证体系深度解析与选择策略 1. 认证体系的历史渊源与技术基因 2003年那场跨国知识产权诉讼&#xff0c;意外催生了中国企业网络设备认证体系的分野。当时华为与3COM合资成立的华为3COM&#xff08;后更名H3C&#xff09;&#x…...

Windows (PowerShell)安装部署OpenClaw

本文主要描述如何在Windows (PowerShell)操作系统中安装部署OpenClaw以及对接阿里云千问大模型服务。 阿里云大模型平台安装部署千问大模型服务 登录阿里云大模型部署平台&#xff1a; 安装运行大模型的支撑工具&#xff1a; pip install githttps://github.com/sgl-project…...

AI Native 时代的 CI/CD:从“手工流水线”到“智能驾驶舱”的范式演进

引言:流水线的“幽灵” 如果把软件交付比作造汽车,很多团队目前的现状是:虽然用上了最先进的零件(AI 辅助编程、云原生架构),但他们的流水线(CI/CD)却依然停留在“老解放牌机床”的水平。 你可能深有体会: Jenkins 脚本如乱麻,各路工具拼凑出的流水线像打满了补丁的…...