云服务配置docker镜像容器以及常用操作命令

首先通过ssh进入云服务器。如何ssh进入云服务器。

简单讲解一下docker中镜像和容器,打个比方,镜像相当于印钱的那个模板,容器相当于从模板上拓下来的钱,不同的模板可以印出不同的钱。但容器被修改后也可以变成新的镜像,再印出对应的初始时相同的容器。

1.添加docker用户组

因为docker很多命令需要sudo权限,所以需要将当前用户添加进docker用户组中,命令,如下,然后输入用户密码,

sudo usermod -aG docker $USER

 

2.拉取镜像

从docker官网通过 pull 拉取一个镜像,我通过拉取乌邦图20.04为例,命令如下,如果提示没有权限,要么命令加上sudo,要么执行上一步,后面就可都避免权限不足 

docker pull unbuntu:20.04 

 

 3.查看所有镜像

docker images

 

4.删除镜像

如果要删除镜像,表示删除ubuntu:20.04这个镜像

docker image rm ubuntu:20.04 

 

 5.使用本地镜像文件

(没有则5,6,7忽略)如果本地已经有了其他服务器上的docker镜像文件,那么直接在本地执行命令,把文件传到云服务器上,然后重新进入服务器,家目录下就能看到 docker文件名 

scp 文件名  服务器别名: 

 

6.查看镜像文件

然后把将镜像从文件中加载出来,那么镜像存在了,可以用 docker images 查看

docker load -i  文件名

 

7.导出镜像文件

相反的,如果需要把服务器上的docker镜像导出到本地或迁移到其他服务器,则在服务器终端中使用命令,就可以成功导出镜像文件,导出后的文件名为自定义,

docker save -o 导出后的文件名 ubuntu:20.04 

         但此文件是仅自己可读写,所以需要修改权限,让其他人也能读,命令

chomd +r  导出后的文件名

        然后就可以通过把镜像文件迁移到其他服务器上或本地,在其他服务器上通过第 5,6 步 生成新的镜像。

8.创建容器

有了docker镜像,就可以使用命令创建容器了。在阿里云服务器中执行命令,这个命令有非常多的参数,感兴趣可以去官网查看

docker create -it ubuntu:20.04

         此时就创建好了 unbuntu:20.04的服务器容器,可以通过命令 docker ps -a 查看所有容器,但他没有运行,然后需要下面命令运行容器。

补充:        

        也可以通过 docker rm 容器id或者名称 命令删除容器,但不能删除在运行的容器,删除之前需要关闭容器,docker container  prune 删除所有已停止的容器

9.运行容器

 docker start 容器id或者名称

        id和名称在 docker ps -a 命令显示的容器列表中的id和name,再通过此命令的status就能看到容器的启动情况,此外 docker stop 容器id或者名称 命令可以关闭容器,docker restart 容器id或者名称 可以重启容器,docker run -itd ubuntu:20.04 也可以直接创建并启动容器

10.进入容器

运行容器之后,进入容器,只能进入已经运行的容器,进入之后会在root用户的根目录下,跟一个新的服务器一模一样

docker attach 容器id或者名称

 退出但挂起容器需要两段操作,先按Ctrl+p,再按Ctrl+q,如果直接退出且关闭容器,则Ctrl+d

11.在云服务器中执行docker中的命令 .

容器需要是运行状态

docker exec 容器id或者名称  命令

 比如,docker exec 82e84dbce483 ls ,就可以查看82e84dbce483这个容器中根目录下的所有文件。

12.导出容器

docker export -o xxx.tar 容器id或者名称   

将容器导出到本地文件xxx.tar中 ,然后使用命令 chmod +r xxx.rar 加上可读权限,然后就可以先scp 传到本地,再通过 scp 命令传到其他服务器上,注意此时相当于导出的是容器的镜像,其他服务器是接受的也是次容器的镜像文件。然后其他服务器 docker export docker文件名 就可以获得此docker文件的镜像,大家会发现此步骤跟 上述 5,6,7步骤中的save和load命令非常相似,但两则有一点区别,对容器的导出和导入就是export和import(但其实导入导出的都是容器的模板也是镜像),直接对镜像的导出和导入就是save和load,但export/import会丢弃历史记录和元数据信息,仅保存容器当时的快照状态,甚至连容器的名字都会被删掉,save/load会保存完整记录,体积更大

13.查看容器信息

容器需要启动,然后 docker attach 容器id或者名称 进入容器,然后执行 top 命令查看当前容器存在的进程,

可以在在云服务器使用命令 docker top 容器id或者名称 查看容器存在进程,两个方法效果基本一样

也可以在云服务器使用命令 docker stats 查看所有容器的资源占用情况

14.在本地和容器间复制文件

docker cp xxx 容器id或者名称:xxx 

docker cp 容器id或者名称:xxx xxx

xxx为文件路径或文件名

15. 重命名容器,

镜像生成容器后,容器名是随机的,这时候就可以修改容器名

docker rename 容器旧名 容器新名

 

16.修改容器限制

比如修改容器内存大小。修改完后可进入容器使用top查看

该命令可以修改的东西非常多,cpu周期,cpu使用数量,内存大小等等,可查看官网

docker update 容器id或者名称--memory 500MB

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/226425.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Postman中参数填写方式

Postman中参数填写和请求方法有关,一般接口用例请求方法GET与POST常用,所以主要是这两种请求方法请求参数填写 一、GET请求方法参数填写 1、直接在URL中填写请求参数,如直接在URL中填写: http://www.example.com:8089/userapi?unamelisi&…

c++_01_名字空间_复合类型_缺省参数_哑元函数

0 前言 C和C一样,都属于编译型语言 C和C一样,都属于强类型语言 C对C完全兼容,并提供更多面向对象的特性:语言风格更加简洁,类型检查更加严格 1 名字空间 namespace WHY?划分更精细的逻辑单元(逻辑空间)&…

Faulhaber 2.5代运动控制系统 25mNm/13W

2.5代控制系统; PWM输出; 四象限控制带; RS232或CANopen通信接口; 2250_BX4_CxD 选件,电缆和连接信息: 适配部件:

谷歌的开源供应链安全

本内容是对Go项目负责人Russ Cox 在 ACM SCORED 活动上演讲内容[1]的摘录与整理。 SCORED 是Software Supply Chain Offensive Research and Ecosystem Defenses的简称, SCORED 23[2]于2023年11月30日在丹麦哥本哈根及远程参会形式举行。 摘要 💡 谷歌在开源软件供应…

根据数据配置信息运用非集成函数处理数据

根据数据配置信息 (data configure)运用非集成函数nonensembled_map_fns处理蛋白质tensor dict。nonensembled_map_fns处理函数: correct_msa_restypes,add_distillation_flag,cast_64bit_ints,squeeze_fea…

【面经】2024年软件测试面试题大全(持续更新)附答案

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试」资…

冒泡排序学习

冒泡排序(Bubble Sort)是一种简单的排序算法,它通过重复地交换相邻的元素来排序。具体实现如下: 1. 从待排序的数组中的第一个元素开始,依次比较相邻的两个元素。 2. 如果前一个元素大于后一个元素,则交换…

计算机网络英文总结

物理层 数据链路层 循环冗余校验(Cyclic Redundancy Check) 点对点协议PPP(Point-to-Point Protocol) 链路控制协议(Link Control Protocol) 网络控制协议(Network Control Protocol) 网络层(network layer) IP(Internet Protocol) 网际协议 ARP(Address…

Mysql in FIND_IN_SET(‘123‘, 数据库字段) 的使用场景

-- in后面的参数是我传入的List SELECT * from user where 数据库字段 in(123, 456); -- 第一个参数是常量, 第二个参数是 数据库字段(逗号隔开的字符串) SELECT * from user where FIND_IN_SET(123, 数据库字段); 用find_in_set 和 like, SELECT * FROM user WHERE…

YOLOv8使用自定义改进后的模型同时《加载官方预训练权重》教程,附代码

YOLOv8自定义改进后的模型同时《加载官方预训练权重》教程,附代码 💡该教程为改进YOLOv8指南,属于《芒果书》📚系列,包含大量的原创改进方式🚀 💡🚀🚀🚀内含改进源代码 按步骤操作运行改进后的代码即可💡更方便的统计更多实验数据,方便写作 YOLOv8自定义…

docker部署node服务pm2

mkdir /data cd /data拉取最新keymetrics/pm2:latest-alpine镜像 docker pull keymetrics/pm2  从github上拉取代码,先要安装git git clone https://github.com/keymetrics/pm2-docker-alpinecd /data/pm2-docker-alpine/example-app编写Dockerfile,…

Spring boot basePackages 通配符* 找不到Bean

Spring boot basePackages 通配符* 找不到Bean 今天遇到了一个关于spring boot 组件ComponentScan 中basePackages 使用通配符* 找不到Bean的问题 目录结构中BussinessPerson与Dog类中都有标注有Component注解,结果扫描不到。 然后删除通配符,结果运行成…

01 Vue介绍

概述 Developers in the industry must resolve frontend development problems quickly with minimal impact on existing workflows or backend architecture. In any cases, developers tend to overlook the UI until the end of a project, which can happen because of …

C++相关闲碎记录(15)

1、string字符串 #include <iostream> #include <string> using namespace std;int main (int argc, char** argv) {const string delims(" \t,.;");string line;// for every line read successfullywhile (getline(cin,line)) {string::size_type beg…

ADUM1200ARZ数字隔离器:重新定义技术标准

ADUM1200ARZ数字隔离器成为技术进步领域的关键组件。其创新设计和多方面功能重新定义了数字隔离技术的格局&#xff0c;提供了满足不同工业需求的众多功能。让我们通过本文直观的了解ADUM1200ARZ的功能与技术标准。 窄体且符合ROHS&#xff1a;设定新基准 该数字隔离器采用窄体…

持续集成交付CICD:Jenkins使用GitLab共享库实现基于Ansible的CD流水线部署前端应用的蓝绿发布

目录 一、实验 1.蓝绿发布准备 2.Jenkins使用GitLab共享库实现基于Ansible的CD流水线部署前端应用的蓝绿发布 二、问题 1.手动构建Jenkins前端项目CI流水线报错 2.如何优化手动构建流水线选项参数 一、实验 1.蓝绿发布准备 &#xff08;1&#xff09;环境 表1 蓝绿发布…

该不该实行末位淘汰制?

在绩效考核中&#xff0c;不得不提一种特别的制度&#xff1a;末位淘汰制。具体而言&#xff0c;末位淘汰制是指工作单位根据设定的目标&#xff0c;结合各个岗位的实际情况&#xff0c;设定的考核指标体系&#xff0c;并以此指标体系为标准对员工进行考核&#xff0c;最后根据…

用EnumSet代替位域

在Java中&#xff0c;可以使用EnumSet来代替位域&#xff0c;以提高代码的可读性和类型安全性。下面是一个简单的例子&#xff0c;演示如何使用EnumSet来管理一组枚举值&#xff1a; import java.util.EnumSet;// 定义一个枚举类型表示权限 enum Permission {READ, WRITE, EXE…

Ubuntu NAT模式下自己电脑无法用过Xshell等工具远程

背景 下载的Ubuntu18.04桌面版&#xff0c;默认配置成NAT模式后&#xff0c;电脑主机可以正常ping通VM&#xff0c;但是Xshell无法远程连接 做法&#xff08;怕不可逆可以先快照&#xff09; 1&#xff1a;查看/etc/ssh/sshd_config配置是否开启22端口 开启后重启ssh 2&#x…

NCNN 源码学习【三】:数据处理

一、Topic&#xff1a;数据处理 这次我们来一段NCNN应用代码中&#xff0c;除了推理外最重要的一部分代码&#xff0c;数据处理&#xff1a; ncnn::Mat in ncnn::Mat::from_pixels_resize(bgr.data, ncnn::Mat::PIXEL_BGR, bgr.cols, bgr.rows, 227, 227);const float mean_v…