Docker——认识Docker 常用命令 Linux中安装docker 常见问题及其解决

目录

  • 引出
  • Docker是啥?
    • Docker是啥?
    • Docker VS 虚拟机
      • 1.特性优势
      • 2.资源优势
  • Docker的架构
  • Docker常用命令
    • (0)docker run
    • (1)docker ps
    • (2)docker stop + 容器名称
    • (3)docker ps -a
    • (4)docker restart/start
    • (5)docker rm + 容器名称
    • (6)docker image ls
    • (7)docker search 镜像名称
    • (8)docker pull 镜像名称
    • (9)docker logs 容器名称
    • (10)docker inspect 查询容器内部的ip地址
    • (11)docker exec进入容器内部
      • 附录:把容器名字改一下
  • Linux的centos中安装docker
    • 删除之前的docker后安装
    • docker常见问题
      • 1.容器中没有linux命令
      • 2.容器中下载缓慢
      • 3.IPv4转发已禁用问题
  • 总结

引出

1.认识docker,docker和虚拟机对比;
2.docker的架构,客户端,镜像,容器,仓库;
3.docker常用的命令,docker exec,inspect,ps;
4.Linux安装docker,更换镜像源,ipv4转发开启;


Docker是啥?

在这里插入图片描述

Docker是啥?

Docker是一个开源的应用容器引擎,开发者可以打包自己的应用到容器里面,然后迁移到其他机器的docker应用中,可以实现快速部署。

Docker利用容器(Container)来运行应用。容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。

可以把容器看成是一个简易版的Linux环境(包括ROOT用户权限、进程空间、用户空间、网络等)和运行在其中的应用程序。

在这里插入图片描述

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

Docker的英文翻译是”搬运工“的意思,他搬运的东西就是我们常说的集装箱Container,Container 里面装的是任意类型的App,我们的开发人员可以通过Docker 将App变成一种标准化的、可移植的、自管理的组件,我们可以在任何主流的操作系统中开发、调试和运行。

在这里插入图片描述

简单的理解,docker就是一个软件集装箱化平台,就像船只、火车、卡车运输集装箱而不论其内部的货物一样,软件容器充当软件部署的标准单元,其中可以包含不同的代码和依赖项。

按照这种方式容器化软件,开发人员和 IT 专业人员只需进行极少修改或不修改,即可将其部署到不同的环境,如果出现的故障,也可以通过镜像,快速恢复服务。

Docker VS 虚拟机

1.特性优势

在这里插入图片描述

DockerVMware
虚拟化轻量级虚拟化(只虚拟出来容器所需要的资源,软件层面)完全虚拟化(虚拟化硬件)
启动速度秒级分钟级
运行性能接近原生5%左右损失
磁盘占用MBGB
数量成百上千一般几十台
隔离性进程级别系统级(更彻底)
操作系统主要支持Linux几乎所有
封装程度只打包项目代码和依赖关系,共享宿主机内核完整的操作系统

2.资源优势

在这里插入图片描述

在这里插入图片描述

Docker的架构

在这里插入图片描述

Client(客户端):是Docker的用户端,可以接受用户命令和配置标识,并与Docker daemon通信。

Images(镜像):是一个只读模板,含创建Docker容器的说明,它与操作系统的安装光盘有点像。

Containers(容器):镜像的运行实例,镜像与容器的关系类比面向对象中的类和对象。

Registry(仓库):是一个集中存储与分发镜像的服务。最常用的Registry是官方的Docker Hub 。

Docker常用命令

在这里插入图片描述

Docker command line

拉取MySQL的docker镜像流程

在这里插入图片描述

(0)docker run

docker run

  • -i:以交互模式运行容器
  • -t:为容器重新分配一个伪输入终端
  • —name :容器名称
  • —privileged: 设置容器公开权限(默认为true)
  • -p :映射端口 linux端口: 容器内置端口(mysql默认端口为3306)
  • -v : linux挂载文件夹/文件和容器内路径的映射
  • -e: 容器的环境变量(设置mysql默认用户名&密码)
  • -d: 后台运行容器,并返回容器ID
docker run -it \
--name mysql_3306 \
--privileged \
-p 3306:3306 \
-v /usr/local/software/mysql/3306/conf/my.cnf:/etc/mysql/my.cnf \
-v /usr/local/software/mysql/3306/data:/var/lib/mysql \
-v /usr/local/software/mysql/3306/mysql-files:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD=123 \
-d mysql

(1)docker ps

ps——process进程

在这里插入图片描述

(2)docker stop + 容器名称

停止容器

在这里插入图片描述

(3)docker ps -a

查看启动过的容器,所有容器

在这里插入图片描述

(4)docker restart/start

在这里插入图片描述

(5)docker rm + 容器名称

删除指定的容器

docker image rm + 镜像名字

在这里插入图片描述

在这里插入图片描述
先停止后删除

在这里插入图片描述

(6)docker image ls

查看镜像的名称

在这里插入图片描述

(7)docker search 镜像名称

从docker库中搜索docker的镜像

在这里插入图片描述

根据版本搜索 docker search mysql:5

在这里插入图片描述

(8)docker pull 镜像名称

从docker库中拉取镜像

在这里插入图片描述

在这里插入图片描述

(9)docker logs 容器名称

docker 日志,查看容器运行时的日志

在这里插入图片描述

(10)docker inspect 查询容器内部的ip地址

docker inspect mysql_3306

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

进行流处理,管道,过滤

docker inspect mysql_3306 | grep IP

[root@localhost ~]# docker inspect mysql_3306 |grep IPA
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.2",
                    "IPAMConfig": null,
                    "IPAddress": "172.17.0.2",

在这里插入图片描述
在这里插入图片描述

(11)docker exec进入容器内部

docker exec -it 容器名称 bash

在这里插入图片描述

进入容器实质上也是进入了一个linux环境。

docker exec

  • -it:以交互模式运行容器 ,为容器重新分配一个伪输入终端。
  • bash: bash(GNU Bourne-Again Shell)是最常用的一种shell(运行在终端的互动程序)。

在这里插入图片描述

附录:把容器名字改一下

问题:进入容器显示bash-4.4的解决方案
进入容器后输入以下两个命令

cp /etc/skel/.bashrc /root/
cp /etc/skel/.bash_profile /root/

退出容器后再次进入

在这里插入图片描述

bash-4.4# cp /etc/skel/.bashrc /root/
bash-4.4# cp /etc/skel/.bash_profile /root/
bash-4.4# exit
exit
[root@localhost 3306]# docker exec -it  mysql_3306 bash
[root@ed5404afb218 /]#

Linux的centos中安装docker

删除之前的docker后安装

停止docker服务

[root@localhost ~]# systemctl stop docker

查询安装的docker服务

[root@localhost ~]# yum list installed |grep docker

删除docker的组件

[root@localhost ~]# yum -y remove docker-*

删除docker文件夹

[root@localhost ~]# rm -rf /var/lib/docker

安装docker

使用yum安装docker不适用官方的安装方式,发现:官方的安装方式容器中的内容不完整。

[root@localhost ~]# yum install -y docker
启动docker
[root@localhost ~]# 
[root@localhost ~]# systemctl start docker
[root@localhost ~]# docker -v
Docker version 1.13.1, build 7d71120/1.13.1
image-20230608120142044

设置docker在linux启动时启动

systemctl enable docker

配置本地镜像库

从网络获取docker镜像太慢,设置阿里云的镜像库。
修改:/etc/docker/daemon.json文件

[root@localhost ~]# vim /etc/docker/daemon.json
[root@localhost ~]# cat /etc/docker/daemon.json
{
"registry-mirrors":["https://ung2thfc.mirror.aliyuncs.com"]
}
[root@localhost ~]# systemctl restart docker

docker常见问题

1.容器中没有linux命令

当使用linux命令时,显示“command not found”。

问题描述
在这里插入图片描述

解决方案
(1)更新容器中linux

apt-get update

root@1aba593b6c47:/etc/mysql# apt-get update

(2)安装程序

apt-get install 命令

root@130dddbf14ee:/# apt-get install vim

2.容器中下载缓慢

问题描述
运行apt-get update 时显示错误:
Err:1 http://deb.debian.org/debian buster InRelease 。

解决方案

编辑 /etc/docker/daemon.json, 修改dns

[root@localhost ~]# vim /etc/docker/daemon.json
{
"registry-mirrors":["https://ung2thfc.mirror.aliyuncs.com"]
}
{
 "dns":["114.114.114.114","8.8.8.8"]
}

重启docker

[root@localhost ~]# systemctl restart docker

单纯下载缓慢,输入下面命令解决

输入下面命令,设置镜像源

vim /etc/docker/daemon.json
{"registry-mirrors":["https://ung2thfc.mirror.aliyuncs.com"]}
cat /etc/docker/daemon.json

在这里插入图片描述

3.IPv4转发已禁用问题

问题描述

在这里插入图片描述
解决方案

[root@localhost master]# vim /etc/sysctl.conf

在这里插入图片描述
在这里插入图片描述

navicat连接mysql的docker时报错:

该问题可能是ipv4端口没开导致的

在这里插入图片描述
放开ipv4端口,重启网络

vim /etc/sysctl.conf
systemctl restart network

在这里插入图片描述
可以重启一下docker,选做
删除容器,再重新启动一下docker

systemctl restart docker
docker ps -a
docker rm mysql
docker run -itd --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123 docker.io/mysql

总结

1.认识docker,docker和虚拟机对比;
2.docker的架构,客户端,镜像,容器,仓库;
3.docker常用的命令,docker exec,inspect,ps;
4.Linux安装docker,更换镜像源,ipv4转发开启;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

DETR (DEtection TRansformer)基于自建数据集开发构建目标检测模型超详细教程

目标检测系列的算法模型可以说是五花八门,不同的系列有不同的理论依据,DETR的亮点在于它是完全端到端的第一个目标检测模型,DETR(Detection Transformer)是一种基于Transformer的目标检测模型,由Facebook A…

华为ospf路由协议在局域网中的高级应用案例

关键配置: 1、出口为ospf区域0,下联汇聚依次区域1、2…,非骨干全部为完全nssa区域 2、核心(abr)上对非骨干区域进行路由汇总,用于解决出口两台路由的条目数量 3、ospf静默接口配置在汇聚下联接接入交换机的…

懒人自动化生成e2e测试文件:JSON => playwright

前言 本工具实现的是:使用简单的 JSON 配置,生成可执行的 playwright UI 测试文件。 然后通过项目内已经配置好的 playwright 配置实现 UI 测试。 工具工作流程: 期望达到的目的是: ✅ 基础页面(进入页面&#xff0…

【Spring Boot学习一】创建项目 Spring Boot的配置文件

目录 一、安装插件 二、创建Spring Boot项目 1、创建项目 1.1 使用IDEA创建 1.2 网页版本创建 2、项目目录介绍与运行 三、Sping Boot的配置文件(重点) 🌷1、.properties配置文件 (1)基础语法:Key …

session 生命周期和经典案例-防止非法进入管理页面

文章目录 session 生命周期和Session 经典案例-防止非法进入管理页面session 生命周期Session 生命周期-说明代码演示说明 Session 的生命周期创建CreateSession2创建ReadSession2 解读Session 的生命周期代码示例创建DeleteSession Session 经典案例-防止非法进入管理页面需求…

教你快速安装Bootstrap

目录 Bootstrap简介Bootstrap的下载Bootstrap的使用 Bootstrap简介 Bootstrap是美国Twitter公司的设计师Mark Otto和Jacob Thornton合作,基于HTML、CSS、JavaScript开发的简洁、直观、强悍的前端开发框架,它会使Web开发更加快捷Bootstrap框架的优点 开发…

MFC加载3ds模型初步

网上下一个资源,名为 OpenGL三维场景绘制.rar; 看一下它是用MFC和opengl,自己绘制三维场景; 运行一下,有一个exe可以运行; 有一个较新版本的不能运行;这应是缺少VC运行库; 下面单独…

基于Selenium+Python的web自动化测试框架(附框架源码+项目实战)

目录 一、什么是Selenium? 二、自动化测试框架 三、自动化框架的设计和实现 四、需要改进的模块 五、总结 总结感谢每一个认真阅读我文章的人!!! 重点:配套学习资料和视频教学 一、什么是Selenium? …

坐标系变换的坑

坐标系变换的坑 坐标系变换本来是很简单的事情,公式也很简单。但是卡了我很多天,原因是:两个坐标系的位姿,虽然都是右手系,但我的在顺时针旋转是yaw角是递增的,同事发给我的却是逆时针递减的。 理论上很简…

使用openvpn docker及frp docker工具构建虚拟专业网络(V-P-N)

使用openvpn docker及frp docker工具构建虚拟专业网络(V-P-N) 借助Docker和OpenVPN技术,您可以在短时间内设置并运行VPN服务器,并保证您的服务器安全。 运行环境 Ubuntu 16.04 TLS Docker version 19.03.8, build afacb8b7f0 OpenVPN Android Client …

zabbix-server监控mysql数据库及httpd服务、监控apache、监控ftp

目录 一、监控mysql数据库及httpd服务 1、为server.Zabbix.com添加服务模板 2、server.zabbix.com服务端 操作 3、编辑chk_mysql.sh脚本 4、server.zabbix.com测试 二、监控apache 1、获取键值 2、服务器操作 3、zabbix监控web端导入监控模板 4、server.zabbix.com添加…

MediaType的常用类型-GPT问答

MediaType的常用类型-GPT问答 MediaType是一个枚举类,包含了常见的媒体类型。下面是一些常用的MediaType类型: APPLICATION_JSON:JSON格式的数据APPLICATION_XML:XML格式的数据APPLICATION_FORM_URLENCODED:表单格式的…

Baichuan-13B 介绍及微调

文章目录 Baichuan-13B介绍Baichuan-13B特点Baichuan-13B效果Baichuan-13B模型参数 推理和部署模型下载模型推理 微调和部署下载仓库配置环境微调数据微调过程 Baichuan-13B介绍 2023年7月11日,百川智能发布Baichuan-13B! github地址:https:…

【启发式算法】灰狼优化算法【附python实现代码】

写在前面: 首先感谢兄弟们的订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌。 路虽远,行则将至&#…

【产品经理】小型团队通用工作流程SOP方案

:所谓SOP,即标准作业程序,指将某一事件的标准操作步骤和要求以统一的格式描述出来,用于指导和规范日常的工作。实际执行过程中sop核心是符合本企业并可执行,不流于形式。 一、跨部门工作流程 跨部门流程及职能如下图展…

6.3.5 利用Wireshark进行协议分析(五)----捕获并分析ICMP报文

6.3.5 利用Wireshark进行协议分析(五)----捕获并分析ICMP报文 一、捕获ICMP报文 打开Wireshark,选择网络接口并点击开始按钮。分组列表面板不断刷新抓渠道的数据包,为了过滤出我们所要分析的ICMP报文,我们在过滤框中输…

点大商城V2_2.5.0 全开源版 商家自营+多商户入驻 百度+支付宝+QQ+头条+小程序端+unipp开源前端安装测试教程

播播资源安装点大商城V2_2.5.0 全开源版测试后发现后台总体体验下来比较简洁,营销功能还是挺多该有的都有了,相比上一版优化很多细节。首页和会员中心均支持DIY装修,底部菜单也一样,安装测试中目前未发现BUG,小程序整体…

macOS 怎么安装redis数据库

1 访问redis数据库下载网址 http://download.redis.io/releases/ 访问上述的redis下载的网址,确定你想要的版本 然后下载即可 (我选则的是6.2.6) 然后下载 下载后 把这个文件解压,放在自己想要放在的位置 2 打开终端 输入对应的…

1770_VirtualBox下安装Debian

全部学习汇总: GreyZhang/little_bits_of_linux: My notes on the trip of learning linux. (github.com) 作为我自己的日常使用,Debian基本上没有出现过。最多是让它运行在某个设备上作为一个服务的平台,因为很多东西我懒得去配置。 Debia…

mysql中的Innodb_buffer_pool_reads和Innodb_buffer_pool_read_requests

Innodb_buffer_pool_reads和Innodb_buffer_pool_read_requests是什么? mysql服务器维护了很多状态变量(status variables),这些变量提供了其相关操作的信息。 我们可以通过SHOW [GLOBAL | SESSION] STATUS 查看这些变量以及变量值。这些变量有很多&…