docker:在ubuntu中运行docker容器

前言

1 本笔记本电脑运行的ubuntu20.04系统

2 docker运行在ubuntu20.04系统

3 docker镜像使用的是ubuntu18.04,这样拉的

docker pull ubuntu:18.04

4 docker容器中运行的是ubuntu18.04的系统,嗯就是严谨

5 这纯粹是学习笔记,实际上没啥价值。

6 和docker相关的命令同样适用于windows版本的docker,且不保证不会出现死机,硬盘被莫名其妙格式化的情况。

运行容器

查看容器:docker ps -a

容器运行了:

docker exec -it ubuntu-18-001 /bin/bash

进入容器了

使用另一个终端查看容器的运行状态:

 docker ps

 说明容器已经运行2分钟了

在这个输出中:

  • CONTAINER ID 是容器的唯一标识符。
  • IMAGE 是容器使用的镜像名称。
  • COMMAND 是容器启动时执行的命令。
  • CREATED 显示容器的创建时间。
  • STATUS 显示容器的状态,例如 Up 表示正在运行,Exited 表示已经停止。
  • PORTS 显示容器的端口映射信息。
  • NAMES 是容器的名称,如果您没有指定名称,Docker 会自动生成一个。

查看所有容器(包括已停止的):docker ps -a

配置容器网络

apt-get install update

apt-get install tree
apt-get install vim
apt-get install net-tools

apt-get install git

apt-get install curl

ping宿主机:

设置登录密码

passwd root

设置完成后,执行exit退出docker容器。

登录测试:

先查找容器的ID:docker ps -a

 使用docker login 1dfd192c72fb

如下所示:确实会提示需要输入用户名和密码,但是会报错

直接输入docker exec -it ubuntu-18-001 /bin/bash还可以进入。 

重启docker容器

 docker restart ubuntu-18-001

执行后,查看docker的运行时间,发现确实重启了

和宿主机NFS共享文件夹

挂在主机的nfs文件夹:

sudo mount -t nfs -o nfsvers=3,nolock 192.168.31.20:/home/lkmao/nfsroot nfsserver/

在另一个机器上挂载是正常的。应该是docker的容器的权限问题。

因为启动容器时,没有开启特权模式,解决办法是,1停止容器,2特权模式运行容器

1 停止容器:

2特权模式运行容器

关于docker run,docker start ,docker exec。

docker run:创建新的容器,并运行容器,并执行传递的命令,支持特权

docker start:启动已经存在的容器,并执行传递的命令,不支持特权

支持特权:并执行传递的命令,不支持特权

所以要删除容器新建一个呗。

docker rm <容器名>,如下所示:因为是测试的,所以就都删除了。

创建新的容器:

如下ubuntu:18.04是镜像名称,ubuntu18-lkmao-001是新建的容器的名字

-it是-i和-t的合体,-i表示交互,-t表示使用终端,就是使用终端交互。就是shell登录界面。

--privileged表示特权模式。

docker run --privileged --network=host --name ub18-lkmao-003 -it -p 8022:22 f9a80a55f492

会有一个经过表示,你都使用主机网络了,还有必要做端口转发发,所以端口转发设置无效。

因为是新建的容器,所以安装一些必要的软件。现在在容器里执行ifconfig,通过输出信息可知,当前容器已经使用了和宿主机相同的IP地址了。

再次挂在:挂载成功

先安装nfs客户端:

apt-get install nfs-common
mkdir /nfsserver/ -p

然后挂载:

mount -t nfs 192.168.31.20:/home/lkmao/nfsroot /nfsserver/

后者:

sudo mount -t nfs -o nfsvers=3,nolock 192.168.31.20:/home/lkmao/nfsroot nfsserver/

验证:挂载成功

检查容器的状态

通过docker ps -a获取对应的容器的ID;

使用docker inspect <CONTAINER ID>查看,执行后会输出一大段信息。

可以看到很多的信息,包括绑定的22端口:

经过实际测试不实行的,因为前面已经发出报警了,因为绑定了主机的网络,所以端口设置失效了。

小结 

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

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

相关文章

【spring】AbstractApplicationContext 的refresh() 方法学习

上一篇我们一起学习了【spring】FileSystemXmlApplicationContext 类学习 AbstractApplicationContext 的refresh() 方法介绍 AbstractApplicationContext的refresh()方法仍然是整个Spring应用程序上下文初始化的核心流程入口。大体上的刷新生命周期依然保持一致。 refresh(…

每日一练:LeeCode-48、旋转图像【二维数组+行列交换】

给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在原地 旋转图像&#xff0c;这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,2,3],[4,5,6],[7,8,9]] 输出…

Java认识泛型类

一、包装类 认识泛型类之前先来认识一下包装类 1、基本数据类型和对应的包装类 在Java中&#xff0c;由于基本类型不是继承自Object&#xff0c;为了在泛型代码中可以支持基本类型&#xff0c;Java给每个基本类型都对应了一个包装类型。 除了 Integer 和 Character&#xff0…

学点Java_Day12_JDBC

1 JDBC 面向接口编程 在JDBC里面Java这个公司只是提供了一套接口Connection、Statement、ResultSet&#xff0c;每个数据库厂商实现了这套接口&#xff0c;例如MySql公司实现了&#xff1a;MySql驱动程序里面实现了这套接口&#xff0c;Java程序员只要调用实现了这些方法就可以…

自动化测试 —— Pytest fixture及conftest详解

前言 fixture是在测试函数运行前后&#xff0c;由pytest执行的外壳函数。fixture中的代码可以定制&#xff0c;满足多变的测试需求&#xff0c;包括定义传入测试中的数据集、配置测试前系统的初始状态、为批量测试提供数据源等等。fixture是pytest的精髓所在&#xff0c;类似u…

智能设备控制概念及方式详解

设备控制 随着物联网设备的普及&#xff0c;如何让用户或者企业安全、灵活地控制和管理设备变得更加重要。因此&#xff0c;便有了设备控制、群组管理、智能场景、多控关联、定时任务等概念。本文主要讲解移动端应用涉及的物联网设备控制相关概念及方式方法。 在以往简单的应…

快速上手Spring Cloud 十五:与人工智能的智慧交融

快速上手Spring Cloud 一&#xff1a;Spring Cloud 简介 快速上手Spring Cloud 二&#xff1a;核心组件解析 快速上手Spring Cloud 三&#xff1a;API网关深入探索与实战应用 快速上手Spring Cloud 四&#xff1a;微服务治理与安全 快速上手Spring Cloud 五&#xff1a;Spring …

专题:一个自制代码生成器(嵌入式脚本语言)之应用实例

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 专题&#xff1a;一个自制代码…

HTTP

HTTP 概念&#xff1a;HyperTextTransferProtocol&#xff0c;超文本传输协议&#xff0c;规定了浏览器和服务器之间数据传输的规则 HTTP协议特点&#xff1a; 1.基于TCP协议&#xff1a;面向连接&#xff0c;安全 2.基于请求-响应模型的&#xff1a;一次请求对应一次响应 …

Redis中的客户端(三)

客户端 身份验证 客户端状态的authenticated属性用于记录客户端是否通过了身份验证: typedef struct redisClient {// ...int authenticated;// ... } redisClient;如果authnticated的值为0&#xff0c;那么表示客户端未通过身份验证&#xff1b;如果authenticated的值为1&a…

目标检测+车道线识别+追踪

一种方法&#xff1a; 车道线检测-canny边缘检测-霍夫变换 一、什么是霍夫变换 霍夫变换&#xff08;Hough Transform&#xff09;是一种在图像处理和计算机视觉中广泛使用的特征检测技术&#xff0c;主要用于识别图像中的几何形状&#xff0c;尤其是直线、圆和椭圆等常见形状…

Ubuntu20.04安装OpenCV并在vsCode中配置

1. 安装OpenCV 1.1 安装准备&#xff1a; 1.1.1 安装cmake sudo apt-get install cmake 1.1.2 依赖环境 sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev sudo apt-get install libgtk2.0-d…