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

这篇具有很好参考价值的文章主要介绍了Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

引出

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


Docker是啥?

Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维

Docker是啥?

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

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

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

Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维

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

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

Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维

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

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

Docker VS 虚拟机

1.特性优势

Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维

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

2.资源优势

Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维

Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维

Docker的架构

Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维

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

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

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

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

Docker常用命令

Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维

Docker command line

拉取MySQL的docker镜像流程

Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维

(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进程

Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维

(2)docker stop + 容器名称

停止容器

Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维

(3)docker ps -a

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

Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维

(4)docker restart/start

Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维

(5)docker rm + 容器名称

删除指定的容器

docker image rm + 镜像名字

Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维

Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维
先停止后删除

Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维

(6)docker image ls

查看镜像的名称

Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维

(7)docker search 镜像名称

从docker库中搜索docker的镜像

Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维

根据版本搜索 docker search mysql:5

Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维

(8)docker pull 镜像名称

从docker库中拉取镜像

Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维

Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维

(9)docker logs 容器名称

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

Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维

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

docker inspect mysql_3306

Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维

Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维

Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维

进行流处理,管道,过滤

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",

Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维
Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维

(11)docker exec进入容器内部

docker exec -it 容器名称 bash

Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维

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

docker exec

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

Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维

附录:把容器名字改一下

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

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

退出容器后再次进入

Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维

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 /]#

Docker进阶命令

定义静态网段

Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维

[root@localhost conf]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
480a87f5e493        bridge              bridge              local
76aceec0d608        host                host                local
79544eec7527        none                null                local
[root@localhost conf]# 

自定义docker的静态网段,关机重启,不会改变redis的ip

docker network create --driver bridge --subnet=172.18.12.0/16 --gateway=172.18.1.1 pet_docker_net
[root@localhost conf]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
480a87f5e493        bridge              bridge              local
76aceec0d608        host                host                local
79544eec7527        none                null                local
[root@localhost conf]# docker network create --driver bridge --subnet=172.18.12.0/16 --gateway=172.18.1.1 pet_docker_net
9d04811dfd2a959c8e653cc1c0edf056f4dbd6c98af8bef0c7c23fad840cf84e
[root@localhost conf]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
480a87f5e493        bridge              bridge              local
76aceec0d608        host                host                local
79544eec7527        none                null                local
9d04811dfd2a        pet_docker_net      bridge              local
[root@localhost conf]# 

拷贝文件

(1)centos拷贝到docker容器

Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维

docker cp ./rabbitmq_delayed_message_exchange-3.9.0.ez rabbitmq_pet:/plugins

(2)容器拷贝到centos

容器内配置文件的位置/etc/my.conf,拷贝到centos

[root@192 mysql]# docker cp mysql_3306_try:/etc/my.cnf my.cnf
[root@192 mysql]# mv conf ./3310/conf/
[root@192 mysql]# ls
3306  3310

容器内配置文件的位置/etc/my.cnf,拷贝到centos下

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”。

问题描述
Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维

解决方案
(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

Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维

3.IPv4转发已禁用问题

问题描述

Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维
解决方案

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

Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维
Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维

navicat连接mysql的docker时报错:

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

Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维
放开ipv4端口,重启网络

vim /etc/sysctl.conf
systemctl restart network

Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决,运维,docker,linux,容器,运维
可以重启一下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转发开启;文章来源地址https://www.toymoban.com/news/detail-567695.html

到了这里,关于Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux中安装部署docker

    Docker是一个开源的容器化平台,用于帮助开发者更轻松地构建、打包、分发和运行应用程序。它基于容器化技术,利用操作系统层级的虚拟化来隔离应用程序和其依赖的环境。通过使用Docker,开发者可以在不同的主机上快速部署和扩展应用程序,而不需要担心环境配置和依赖

    2024年02月11日
    浏览(28)
  • 如何在Linux中安装docker

    1.首先卸载旧版本的Docker,若没有安装过Docker,可跳过本步。  2.安装yum工具  3.然后更新本地镜像源: 4然后输入命令:  5.关闭防火墙 6.通过命令启动docker: 7.然后输入命令,可以查看docker版本: 8.docker加速 docker官方镜像仓库网速较差,我们需要设置国内镜像服务: 参考阿

    2024年02月03日
    浏览(26)
  • kafka--技术文档--基本docker中安装<单机>-linux

    阿丹小科普:         Kafka在0.11.0.0版本之后不再依赖Zookeeper,而是使用基于Raft协议的Kafka自身的仲裁机制来替代Zookeeper。具体来说,Kafka 2.8.0版本是第一个不需要Zookeeper就可以运行Kafka的版本,这被称为Kafka Raft Metadata mode(Kafka Raft元数据模式)。引入基于Raft协议的KRaft模

    2024年02月11日
    浏览(32)
  • Linux(Centos7)中安装Docker和DockerCompose

    Linux下需要通过命令下载: 我们的私服采用的是 http协议 ,默认不被Docker信任,所以需要做一个配置:

    2024年02月09日
    浏览(30)
  • Docker | Docker常用命令

    ✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏:Docker系列 ✨特色专栏: MySQL学习 🥭本文内容: Docker | Docker常用命令 📚个人知识库: [Leo知识库]https://gaoziman.gitee.io/blogs/),欢迎大家访问 大家

    2024年02月05日
    浏览(33)
  • Docker实战:Docker常用命令

    参考:https://blog.csdn.net/weixin_45509582/article/details/125599521 输出依次为,进程pid、容器ID、容器名、存储work路径,即可确定是哪个容器。 参考:https://blog.csdn.net/sebeefe/article/details/123732823

    2024年02月12日
    浏览(34)
  • 【Docker | 2】Docker常用命令介绍

      Docker 是一种轻量级的容器化技术,常用于构建、打包、部署和运行应用程序。以下是一些常用的 Docker 命令及其详细介绍: 语法介绍 运行一个 Docker 容器。 OPTIONS :可选参数,用于配置容器的行为。 IMAGE :必选参数,指定要运行的容器镜像。 COMMAND :可选参数,覆盖容器

    2024年02月14日
    浏览(34)
  • Docker笔记 Docker架构与常用命令

    大家好 我是积极向上的湘锅锅💪💪💪 首先Docker由三大部分组成 Clients:客户端 通过docker的客户端操作命令,然后命令发送到daemon(守护进程)里面去执行操作 Hosts:主机 主机包括俩个部分,分别是 local host 和 remote host ,意思是本机和远程的机器。 而在local host这个部分里面

    2024年02月13日
    浏览(31)
  • 27-Docker-常用命令详解-docker tag

    前言 本篇来学习docker tag 命令 docker tag 作用:标记本地镜像,将其归入某一仓库。 语法格式 使用示例 打了新的 TAG 虽然会多了一条记录,但是从 IMAGE ID 可以得知他们是同一个镜像

    2024年02月17日
    浏览(31)
  • ubuntu安装docker及docker常用命令

    docker里有三个部分 daemon 镜像 和 容器 我们需要了解的概念 容器 镜像 数据卷 容器的数据卷。理解为一个文件或者一个目录。 宿主机(安装docker的机器)和容器,容器和容器之间可以有一块共同的空间,她们所有都可以对这块空间操作,写入,修改,删除等等,一处修改,多

    2024年02月04日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包