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

进入界面,能看到自己的加速器地址(登录状态):
在这里插入图片描述

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”状态的容器

猜你喜欢

转载自blog.csdn.net/weixin_50344742/article/details/114644519