一、Docker介绍

Docker介绍

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。Docker是通过内核虚拟化技术(namespaces和cgroups)来提供容器的资源隔离与安全保障。容器是完全使用沙箱机制,相互之间不会有任何接口。基于go语言并遵从Apache2.0协议开源。

Docker官方网站

Docker官方文档

Docker组成

  • Docker Client:CLI命令
  • Docker Server:守护进程

Docker组件

(与虚拟机进行对比)

  • Docker Image 镜像:静态概念,把应用、代码和所需应用库(Bins/Libs)运行环境进行封装和打包
  • Docker Container 容器:动态概念,从镜像创建的一个实例,容器之间相互隔离,可进行启停、创建和删除操作
  • Docker Repository 仓库:存放镜像

Docker特点

  • 可管理性:单进程、不建议启动SSH
  • 前台运行进程,进程结束时容器停止,Docker只实现进程级别的隔离(虚拟机实现操作系统级别的隔离)
  • 基于C/S架构:Server端服务中断则运行于其上的所有容器停止
  • 简化配置与快速部署:应用与运行环境进行打包,快速产品交付,可同时进行多个版本测试
  • 不可变理论:原来的不改动,重新创建新的,保证环境一致性
  • 支持微服务架构:自动化扩容,Docker在京东的应用

二、Docker安装

安装Docker Community Edition (CE)

cd /etc/yum.repos.d/ && wget https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io -y

查看docker版本

docker -v

查看docker命令帮助

docker --help
docker inspect --help

Docker安装官方教程

三、Docker基本使用

Docker Server相关命令

查看Docker Server守护进程运行状态

systemctl status docker
systemctl start docker

Docker镜像管理相关命令

显示当前所有镜像

docker images

搜索docker镜像

docker search nginx
docker search centos

拉取/下载docker镜像

docker pull centos
docker pull nginx

以tar格式导出本地docker镜像

docker save -o nginx.tar nginx

导入本地docker镜像

docker load -i nginx.tar

删除docker镜像

docker rmi <IMAGE ID>

四、Docker容器相关命令

Docker容器管理方式

  1. 通过docker容器的CONTAINER ID
  2. 通过docker容器的NAMES

Docker容器相关命令

查看所有docker容器及状态

docker ps -a
#只显示运行中的容器
docker ps

启动docker容器,并执行echo命令,最后容器进入停止状态

docker run --name mycentos centos /bin/echo "abc"
#命令格式,注意镜像名称放在所有参数的后面
#docker run [ARG...] IMAGE [COMMAND] [ARG...]
#--rm 表示容器停止后删除
docker run --rm centos /bin/echo "abc"

启动docker容器,分配TTY和打开容器的标准输入

docker run --name mycentos -t -i centos /bin/bash
#然后进入该容器执行命令
ps aux
#显示的是物理机状态(说明docker只实现进程级别的隔离)
cat /proc/cpuinfo
free -h
exit

重新启动指定容器

docker start mycentos

容器执行指定命令

docker exec mycentos ps -aux
docker exec mycentos w

删除容器

docker rm mycentos
#-f 强制删除运行中的容器
docker rm -f mycentos

五、进入指定容器

方法一

#首先安装util-linux工具包,包含nsenter工具
yum install util-linux -y
#获取容器的PID
docker inspect -f {{.State.Pid}} mycentos
#进入命名空间,nsenter --help
nsenter -t <PID> -m -u -i -n -p
ps -ef
#不会直接退出docker,因为nsenter创建了一个线程
exit

对方法一进行优化:编写shell脚本

[root@linux-202 ~]# cat docker_in.sh
#!/bin/bash #Use Docker name and nsenter tool to attach Docker. DOCKER_NAME=$1
DOCKER_PID=`docker inspect -f {{.State.Pid}} $DOCKER_NAME`
nsenter -t $DOCKER_PID -m -u -i -n -p
[root@linux-202 ~]# chmod +x docker_in.sh
[root@linux-202 ~]# ./docker_in.sh mycentos

方法二

docker attach mycentos
#会直接退出docker
exit

方法三

docker exec -i -t mycentos /bin/bash

Docker安装与基础使用的更多相关文章

  1. Docker 安装和基础用法

    理解Docker(1):Docker 安装和基础用法 本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 ...

  2. Docker 安装入门 --基础镜像

    安装Docker1.Docker命令安装 yum install docker //安装docker包 service docker start //设置服务启动  chkconfig docker ...

  3. 理解Docker(1):Docker 安装和基础用法

    本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...

  4. Docker安装及基础使用

    Docker 安装 在 Mac OS X 系统中,首先你要下载安装包安装:Docker Toolbox 安装过程中,可以选择是否安装 Docker Machine,Docker Compose 等,默 ...

  5. docker安装和基础操作

    docker安装 yum install docker 配置镜像下载加速器 curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh ...

  6. 【Mac】Docker安装及基础使用

    Docker 安装 在 Mac OS X 系统中,首先你要下载安装包安装:Docker Toolbox 安装过程中,可以选择是否安装 Docker Machine,Docker Compose 等,默 ...

  7. Docker安装及基础命令

    一.docker安装 1.安装docker #关闭防火墙和selinux systemctl stop firewalld.service setenforce 0  ​ #安装依赖包 yum ins ...

  8. Docker安装及基础知识

    一.安装 & 启动 1.安装Docker [root@tokyo ~]# yum install docker 2.启动Docker服务 (1)旧式的 sysv 语法 [root@tokyo ...

  9. Docker安装和基础命令

    每个优秀的人,背后都有一段沉默的时光 前言 学习Docker基础知识 安装 docker常见的有3种安装方式,yum.rpm包.脚本. 我们采用相对简单但对各种环境比较友好的方式:(关防火墙和seli ...

  10. docker 应用-1(安装以及基础命令)

    Docker 安装 还是看官方文档吧TAT https://docs.docker.com/engine/getstarted/step_one/ 理解docker镜像和容器 镜像就是docker容器 ...

随机推荐

  1. Chrome 135 版本开发者工具(DevTools)更新内容

    Chrome 135 版本开发者工具(DevTools)更新内容 一.性能(Performance)面板改进 1. 性能面板中的配置文件和函数调用现已显示来源和脚本链接 Performance > ...

  2. 使用Python进行切比雪夫插值

    引言 在科学计算中,插值是一个非常重要的概念.简单来说,插值就是通过已知的离散数据点来估算未知点的值.今天,我们将重点介绍切比雪夫插值,它是一种非常有效的插值方法,特别适用于解决插值多项式高次时出现的 ...

  3. 详细介绍FutureTask类

    一.详细介绍FutureTask类 FutureTask 未来将要执行的任务对象,继承 Runnable.Future 接口,用于包装 Callable 对象,实现任务的提交 public stati ...

  4. AI浏览器自动化实战

    只需一句话,AI 即可自动操作浏览器: 搜索商品: 下单支付: 甚至还能进行深度研究(Deep Research),自动生成完整的攻略报告: Browser use 是一个开源项目,使 AI 大模型能 ...

  5. eolinker脚本代码[Javascript]:脚本(函数)之间传参案例

    场景描述: 有等级卡A.B,依次通过查询A.B,检查A.B下是否会会员,如果有,调整会员身份,没有着执行下一个循环 全部脚本:脚本中红色标注的user即脚本之间的传参 //以下代码为示例代码(支持原生 ...

  6. <HarmonyOS第一课03>ArkTS语法介绍

    视频链接: https://developer.huawei.com/consumer/cn/training/course/slightMooc/C101717496870909384?ha_sou ...

  7. 可持久化 01-trie 简记

    本文略过了 trie 和 可持久化的介绍,如果没学过请先自学. 在求给定一个值 \(k\) 与区间中某些值的异或最大值时,可以考虑使用在线的数据结构可持久化 01-trie 来维护. 01-trie ...

  8. FHQ treap(无旋treap)

    平衡树 平衡树作为一种中级数据结构,有着广泛的使用场景.其平衡性的维护方式灵活多变,而其中的无旋treap更以简单著称 P3369 [模板]普通平衡树 题意: 需维护以下操作: 插入一个数 x. 删除 ...

  9. 基于CARLA/ROS的多传感器融合感知系统实战教程(附完整代码)

    引言:为什么需要多传感器融合? 在自动驾驶系统中,单一传感器存在固有缺陷: 摄像头:易受光照影响,缺乏深度信息: 激光雷达(LiDAR):成本高,纹理信息缺失: 毫米波雷达:分辨率低,角度精度差. 本 ...

  10. vue之sync

    在 Vue 中,.sync 是一个用于实现双向数据绑定的特殊修饰符.它允许父组件通过一种简洁的方式向子组件传递一个 prop,并在子组件中修改这个 prop 的值,然后将修改后的值反馈回父组件,实现双 ...