01-Docker基本管理
1.1:什么是docker?有什么用?
Docker是一个用于开发,交付和运行应用程序的开放平台。Docker使您能够将应用程序与基础架构分开,从而可以快速交付软件。
是一个开源的应用容器引擎,让开发者可以打包大门的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或者Windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口
沙箱(Sandbox):在计算机安全领域,沙箱是一种程序的隔离运行机制
Docker在2013年一炮而红,直到现在,已经成为容器技术的代名词。
Docker从一开始就以提供标准化的运行时环境为目标,真正做到“build once, run anywhere”,可以将同一个构建版本用于开发、测试、预发布、生产等任何环境,并且做到了与底层操作系统的解耦。在此基础上还进一步发展出了CaaS(容器即服务)技术。
1.2:Docker的使用场景
- 打包应用程序简单部署
- 可脱离底层硬件任意迁移(实现了应用的隔离,将应用拆分并进行解耦),例如:服务器从腾讯云迁移到阿里云
- 持续集成和持续交付(CI/CD):开发到测试发布
- 部署微服务
- 提供PAAS产品(平台即服务){OpenStack的云主机类似于阿里云的ECS,属于IAAS、Docker(K8S) 属于PAAS}
1.3:Docker引擎(Docker Engine)
- Docker Engine是具有以下主要组件的客户端-服务器应用程序
- 服务器是一种长期运行的程序,称为守护程序进程(dockerd 命令)
- REST API,它指定程序可以用来与守护程序进行通信并指示其操作的口。
- 命令行界面(CLI)客户端(docker 命令)
1.4:Docker的架构(Docker architecture)
Docker使用客户端-服务器架构。Docker 客户端与Docker 守护进程进行对话,该守护进程完成了构建,运行和分发Docker容器的繁重工作。
Docker区别于传统的虚拟化,不需要虚拟硬件资源,直接使用容器引擎,所以速度快。
Docker Client:客户端
Docker客户端(docker)是许多Docker用户与Docker交互的主要方式。当您使用诸如之类的命令时docker run,客户端会将这些命令发送到dockerd,以执行这些命令。该docker命令使用Docker API。Docker客户端可以与多个守护程序通信。Docker daemon:守护进程
Docker守护程序(dockerd)侦听Docker API请求并管理Docker对象,例如图像,容器,网络和卷。守护程序还可以与其他守护程序通信以管理Docker服务。Docker images:镜像
容器可以被打包成镜像Docker container:容器
Docker registry:镜像仓库
存储镜像的地方,默认在公共的Docker Hub上查找,可以搞个人仓库。
1.5:容器与虚拟机的区别
1.6:名称空间(Namespaces)
- Docker使用一种称为namespaces提供容器的隔离工作区的技术。运行容器时,Docker会为该容器创建一组 名称空间。
- 这些名称空间提供了一层隔离。容器的每个方面都在单独的名称空间中运行,并且其访问仅限于该名称空间。
- Docker Engine在Linux上使用以下名称空间:
该pid命名空间进程隔离(PID:进程ID)。
该net命名空间管理网络接口(NET:网络)。
该ipc命名空间管理访问IPC资源(IPC:进程间通信)。
该mnt命名空间管理文件系统挂载点(MNT:mount)。
该uts命名空间隔离内核和版本标识符。(UTS:Unix时间共享系统)。
1.7:控制组(Control groups)
- Linux上的Docker引擎还依赖于另一种称为控制组 (cgroups)的技术。cgroup将应用程序限制为一组特定的资源。控制组允许Docker Engine将可用的硬件资源共享给容器,并有选择地实施限制和约束。例如,您可以限制特定容器可用的内存。
Docker的安装
注意:目前docker只支持64位操作系统
使用网络源
下载阿里云官方源
wget -O /etc/yum.repos.d/centos-base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
添加docker源yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker
yum -y install docker-ce
离线安装
安装包下载链接:https://pan.baidu.com/s/1eueN06j8cV9o2gwc1qu8qw
提取码:1c9d
复制这段内容后打开百度网盘手机App,操作更方便哦
安装依赖包
yum -y install yum-utils device-mapper-persistent-data lvm2
[root@centos-02 ~]# tar zxvf docker_rpm.tgz
[root@centos-02 ~]# yum -y install docker-repo/*.rpm
配置aliyun镜像加速
登陆aliyun官网点击搜索
sudo mkdir -p /etc/docker
[root@centos-02 ~]# sudo tee /etc/docker/daemon.json<<-'EOF'{"registry-mirrors": ["https://5aliqknw.mirror.aliyuncs.com"],"exec-opts": ["native.cgroupdriver=systemd"]}
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now docker
cat >> /etc/sysctl.conf <<EOF
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF
sysctl -p
[root@centos-02 ~]# systemctl restart docker
到此docker安装完成
Docker镜像操作
1、搜索镜像
docker search 关键字
例如:
[root@centos-02 ~]# docker search nginx
执行docker search lamp命令后,会返回很多包含lamp关键字的镜像,其中,返回信息包括镜像名称(NAME)、描述(DESCRIPTION)、 星级(STARS)、 是否官方创建(OFFICIAL)、是否主动创建(AUTOMATED)。默认的返回结果会按照星级评价进行排序,表示该镜像的受欢迎程度。在下载镜像时,可以参考星级。在搜索时,还可以使用-S或者–stars=x 显示指定星级的镜像,星级越高表示越受欢迎。
2、获取镜像
docker pull 仓库名称[:标签]
例如:[root@centos-02 ~]# docker pull busybox
例如:[root@centos-02 ~]# docker pull busybox:1.2
3、查看镜像
docker images 仓库名称[:标签]
例如:[root@centos-02 ~]# docker images busybox
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox latest b97242f89c8a 5 days ago 1.23MB
docker inspect 镜像ID号
[root@centos-02 ~]# docker inspect b97242f89c8a
4、添加新标签
docker tag 名称[:标签] 新名称[:标签]
例如:[root@centos-02 ~]# docker tag busybox:latest hz:hz[root@centos-02 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox latest b97242f89c8a 5 days ago 1.23MB
hz hz b97242f89c8a 5 days ago 1.23MB
5、删除镜像
docker rmi 仓库名称[:标签]
docker rmi 镜像ID号
例如:[root@centos-02 ~]# docker rmi hz:hz
删除所有镜像!:docker rmi -f $(docker images -q)
6、存出镜像
docker save -o 存出文件名 存出的镜像
docker save >存出文件名 存出的镜像
例如:[root@centos-02 ~]# docker save > busybox.docker busybox
7、载入镜像
docker load --input 存出文件名
docker load < 存出文件名
[root@centos-02 ~]# docker load < busybox.docker
0064d0478d00: Loading layer 1.45MB/1.45MB
Loaded image: busybox:latest
8、上传镜像(到互联网仓库)
docker push 仓库名称[:标签]
[root@centos-02 ~]# docker login --username=q1990296326 registry.cn-shanghai.aliyuncs.com
[root@centos-02 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox latest b97242f89c8a 6 days ago 1.23MB
[root@centos-02 ~]# docker tag b97242f89c8a registry.cn-shanghai.aliyuncs.com/fengbowen/fbw:v1
[root@centos-02 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox latest b97242f89c8a 6 days ago 1.23MB
registry.cn-shanghai.aliyuncs.com/fengbowen/fbw v1 b97242f89c8a 6 days ago 1.23MB
[root@centos-02 ~]# docker push registry.cn-shanghai.aliyuncs.com/fengbowen/fbw:v1
上传成功后可以在阿里云进行查看
Docker容器操作
#1、创建容器
docker create [选项] 镜像运行的程序
-i 让容器的标准输入保持打开
-t让Docker分配一个伪终端
例如:docker create -it busybox
#2、查看容器运行状态
docker ps [选项]
-a列出最近一次启动的容器
例如:docker ps -a
#3、启动容器
docker start 容器的ID/名称
docker start busybox
docker start b97242f89c8a
#4、创建容器并启动执行shell命令
docker run [选项] 镜像运行的程序 执行的命令
-d 在后台进行运行
[root@centos-02 ~]# docker run -d busybox
#5、终止容器
Docker stop 容器的ID/名称
[root@centos-02 ~]# docker stop fda917ac63dc
#6、进入容器
docker exec [选项] 容器的ID/名称 /bin/bash
[root@centos-02 ~]# docker exec -it b3 /bin/sh
#7、导出容器
docker export 容器的ID/名称 > 文件名
[root@centos-02 ~]# docker export b3 > b3.doc
#8、导入容器
cat 文件名 | docker import -生成的镜像名称:标签
[root@centos-02 ~]# cat b3.doc | docker import - b4 v1
[root@centos-02 ~]# cat b3.doc | docker import - b5:v1
#9、删除容器
Docker rm [选项] 容器的ID/名称
[root@centos-02 ~]# docker rm b2
删除所有容器!: docker rm -f $(docker ps -aq)
01-Docker基本管理相关推荐
- docker可视化管理工具对比 DockerUI Shipyard Rancher Portainer
目录 1.前言 2.优劣对比 DockerUI Shipyard Rancher Portainer 1.前言 谈及docker,避免不了需要熟练的记住好多命令及其用法,对于熟悉shell.技术开发人 ...
- Docker镜像管理
Docker镜像管理 一.Docker镜像的基本操作 1.查看本地镜像 2.搜索镜像仓库镜像 3.拉取镜像 4.导出镜像 5.导入镜像 6.删除镜像 二.docker的操作系统 1.Linux系统构成 ...
- Docker容器管理总结
Docker容器管理总结 一.Docker容器理解 1.Docker的核心概念 2.容器的运行状态 二.Dockerfile理解 三.容器使用及操作 1.进入容器空间内 2.后台运行容器 3.前台运行 ...
- 美团点评Docker容器管理平台
本文是郑坤根据第14期美团点评技术沙龙"你不知道的美团云"演讲内容整理而成,已发表在<程序员>杂志2017年1月刊. 美团点评容器平台简介 本文介绍美团点评的Docke ...
- Docker轻量级管理工具Portainer
Docker轻量级管理工具Portainer Portainer简介 Portainer是一款轻量级的Docker容器管理工具,具有WebUI界面,可以在WebUI上启动.停止.删除.配置容器,搜索需 ...
- 使用Docker Compose管理多个容器
使用Docker Compose管理多个容器 Docker Compose是一个用来定义和运行复杂应用的Docker工具.使用Compose,你可以在一个文件中定义一个多容器应用,然后使用一条命令来启 ...
- 如何使用Docker Swarm管理更多容器
by nolan grace 通过诺兰·格雷斯 如何使用Docker Swarm管理更多容器 (How to manage more containers with Docker Swarm) Sca ...
- docker 管理工具_详解Docker可视化管理工具shipyard--部署教程及功能展示
概述 谈及docker,避免不了需要熟练的记住好多命令及其用法,对于熟悉shell.技术开发人员而言,还是可以接受的,熟练之后,命令行毕竟是很方便的,便于操作及脚本化.但对于命令行过敏.非技术人员,进 ...
- syslog工具_07 Docker 可视化管理和监控工具
Docker 可视化管理和监控工具 Portainer docker run -d -p 9000:9000 --restart always -v /var/run/docker.sock:/var ...
- docker容器管理及网络管理
防火墙规则-- INPUT 主要用于主机防火墙,设置规则屏蔽处理进入本机的数据包 示例:禁止10.180.100.141这个机器访问我本机的web服务 iptables -t filter -A IN ...
最新文章
- java 3维_java 二维/三维/多维数组
- 谈谈Activity如何启动的
- 关于点名的简单python编程_如何用python编写一个简易的随机点名软件
- Asya And Kittens
- 一个“alert” 引发的血案
- vue一步一步带你封装一个按钮组件
- 蓝桥杯 ADV-177算法提高 理财计划
- centos7安装git踩坑记
- 《机器学习算法竞赛实战》读书笔记
- 0基础入门学PLC,只需掌握好这5个步骤让您从0变精通
- 千万数据的分库分表方案
- 系列篇|单目结构光三维成像系统的标定方法
- [转]:首届鸿蒙生态人才建设峰会开幕
- android 函数式编程,思想交融,Android中的函数式编程(2):什么是函数式编程...
- Nexus 搭建docker本地仓库(hosted)和私有仓库(proxy)
- 智慧医院3D导航导诊系统-基础功能详解
- Linux下输入子系统上报触摸屏坐标
- LTE学习---PLMN选网(23.122协议R9)
- WEB安全之DIV CSS基础(二):文字和文本的属性、列表样式和伪类超链接
- Codevs 1697 ⑨要写信