Docker-基本管理命令

  • 概述
  • 简介
  • 区别
  • 使用场景
  • 优势
  • 核心概念
  • 安装
  • 基础安装
  • 设置镜像加速
  • 网络优化
  • 常用命令与基础操作


概述

简介

Docker 是一个开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。(沙箱是一个虚拟系统程序,沙箱提供的环境相对于每一个运行的程序都是独立的,而且不会对现有的系统产生影响,即沙箱提供一个限制该应用程序对系统资源的访问权限)。容器不依赖于系统,依赖于引擎。容器是一个应用层抽象;虚拟机(VM)是一个物理硬件层抽象。例如,云服务提供商通常采用虚拟机技术隔离不同的用户。而Docker通常用于隔离不同的应用 ,例如前端,后端以及数据库。
可以在任意环境部署的原因:只要能装上docker-engine 引擎,就能使用;它实现了docker环境的跨平台。

区别

Docker

虚拟机

运行性能

接近原生(内核运行)

5%左右损失

启动速度

秒级

分钟级

磁盘占用

MB

GB

数量

成百上千

一般几十台

隔离性

进程级别

系统级别(更彻底)

操作系统

主要支持linux

几乎所有

封装程度

只打包项目代码和依赖关系,共享主机内核

完整的操作系统,与宿主机隔离

使用场景

打包应用程序简化部署。可脱离底层硬件任意迁移。

优势

更快速的交付和部署
高效的部署和扩容
更高的资源利用率
更简单的管理

核心概念

镜像:一个面向Docker容器引擎的只读模板

容器:从镜像创建的运行实例

仓库:集中保存镜像的地方

安装

基础安装

yum install -y yum-utils device-mapper-persistent-data lvm2		#安装依赖包
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#添加阿里云镜像源
yum -y install docker-ce		#安装Docker-CE
systemctl start docker
systemctl enable docker

设置镜像加速

可登录阿里云官网,搜索“容器镜像服务”或直接访问https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

进入界面,能看到自己的加速器地址(登录状态):

Docker沙箱中运行java代码 docker和沙箱的区别_运维

sudo是普通用户能执行管理用户部分功能所使用的提权命令,可不加。

网络优化

echo "net.ipv4.ip_forward=1" > /etc/sysctl.conf
sysctl -p
systemctl restart network
systemctl restart docker

生产环境下可优化的其它配置
“graph”: “/data/docker” (数据目录)
“storage-driver”: “overlay2”(存储引擎)
“insecure-registries”:[“registry.access.redhat.com”,“quary.io”](私有仓库)
“registry-mirrors”: [“https://q”](镜像加速)
“bip”: “172.7.5.1/24”(docker网络) #可和宿主机IP对应,方便定位故障节点位置
“exec-opts”:[“native.cgroupdriver=systemd”] (启动时候的额外参数(驱动)
“live-restore”: true (当docker容器引擎挂掉的时候,使用docker跑起来的容器还能运行(分离)

常用命令与基础操作

镜像基本命令

docker search 关键字(nginx)	#镜像搜索

docker pull 关键字(nginx)	#镜像下载

docker images				#镜像查询

docker inspect 镜像ID		#查看镜像详细信息

docker tag 镜像标签 新标签	#添加镜像标签
docker tag nginx:latest nginx:web

docker rmi 镜像标签(nginx:latest)		#删除镜像
-f 可以全部删除

docker save -o nginx_img nginx:latest	#镜像输出
docker save -o /opt/nginx nginx:latest	#存出镜像并命名为nginx,存到/opt目录下

docker load <镜像文件(nginx_img)			#镜像导入

容器基本命令

docker version	#容器版本

docker ps -a	#容器列表查询
-a 列出最近一次启动的容器

docker create -it nginx:latest /bin/bash	#创建容器

docker start 容器ID							#启动容器

docker stop 容器ID							#终止容器

docker run 镜像名称 操作指令					#一次性容器操作
docker run centos:7 /usr/bin/bash -c ls /
执行完成会关闭,状态是Exited(容器可以做一次性的处理,处理完就释放资源,做到了最小成本控制)

docker exec -it 容器ID /bin/bash				#进入容器,该容器一定要在Up状态
docker run -it 容器名 环境
docker run -it nginx:latest /bin/bash
-i 让容器的标准输入保持打开
-t 让Docker分配一个伪终端

cat 容器ID | docker import -镜像名 (会生成镜像,不会生成容器)	#导入容器

docker export 容器ID > 导出的容器名							#导出容器

docker rm 容器ID (必须先停止再删除)							#删除容器

docker ps -a | awk '{print "docker rm "$1}' | bash			#批量删除“exit”状态的容器