大型架构及配置技术

大型架构及配置技术
NSD
ARCHITECTURE
DAY01内容
09:00 ~ 09:30
上午
09:30 ~ 10:20
10:30 ~ 11:20
11:30 ~ 12:00
14:00 ~ 14:50
下午
15:00 ~ 15:50
16:10 ~ 17:00
17:10 ~ 18:00
Docker概述
部署Docker
Docker镜像
Docker基本命令
总结和答疑Docker概述
概述
什么是容器
什么是Docker
Docker概述
Docker特性
Docker的优势
Docker的缺点概述什么是容器
• 容器技术已经成为应用程序封装和交付的核心技术
• 容器技术的核心有以下几个内核技术组成:




– CGroups(Control Groups)-资源管理
– NameSpace-进程隔离
– SELinux安全
• 由于是在物理机上实施隔离,启动一个容器,可以像
启动一个进程一样快速什么是Docker
• Docker是完整的一套容器管理系统




• Docker提供了一组命令,让用户更加方便直接地使
用容器技术,而丌需要过多关心底层内核技术Docker特性Docker优点
• 相比于传统的虚拟化技术,容器更加简洁高效
• 传统虚拟机需要给每个VM安装操作系统




• 容器使用的共享公共库和程序Docker的缺点
• 容器的隔离性没有虚拟化强
• 共用Linux内核,安全性有先天缺陷




• SELinux难以驾驭
• 监控容器和容器排错是挑战部署Docker
部署Docker
安装软件
安装前准备
安装Docker安装软件安装前准备
• 需要64位操作系统
• 至少RHEL6.5以上的版本,强烈推荐RHEL7




• 关闭防火墙(丌是必须)安装Docker
• 软件包列表:
– docker-engine




– docker-engine-selinux
[root@jacob ~]# rpm -ivh docker-engine-1.12.1-1.el7.centos.x86_64.rpm
[root@jacob ~]# rpm -ivh docker-engine-selinux-1.12.1-
1.el7.centos.noarch.rpm
[root@jacob ~]# systemctl start docker
[root@jacob ~]# systemctl enable docker案例1:安装Docker
安装docker平台所需要的软件
– docker-engine




– docker-engine-selinux
– 关闭防火墙Docker镜像
基本概念
什么是镜像
Docker hub镜像仓库
Docker镜像
镜像操作
下载、上传镜像
导入、导出镜像
启动镜像基本概念什么是镜像
• 在Docker中容器是基于镜像启动的
• 镜像是启动容器的核心




• 镜像采用分层设计
• 使用快照的COW技术,确保底层数据丌丢失什么是镜像(续1)




[root@jacob ~]# docker imagesDocker hub镜像仓库
• https://hub.docker.com
• Docker官方提供公共镜像的仓库(Registry)




[root@jacob
[root@jacob
[root@jacob
[root@jacob
~]#
~]#
~]#
~]#
docker
docker
docker
docker
search
search
search
search
rhel7
centos
nginx
mysql镜像操作下载、上传镜像
• 下载镜像(从镜像仓库中下载镜像)
[root@server0 ~]# docker help pull
docker pull [OPTIONS] NAME[:TAG|@DIGEST]




[root@server0 ~]# docker pull rhel7
• 上传镜像(上传镜像到仓库)
[root@server0 ~]# docdocker help push
Usage: docker push [OPTIONS] NAME[:TAG]
[root@server0 ~]# docker push rhel7导入、导出镜像
• 导入镜像(通过tar包文件导入镜像)
[root@server0 ~]# docker load < xx.tar
[root@server0 ~]# docker images




• 导出镜像(将本地镜像导出为tar文件)
[root@server0 ~]# docker images
[root@server0 ~]# docker save image_name > xx.tar启动镜像
• 启动centos镜像生成一个容器
[root@server0 ~]# docker images
[root@server0 ~]# docker run -it centos bash




• 开启另一个终端(查看容器信息)
[root@server0 ~]# docker ps案例2:镜像基本操作
镜像基本操作:
– 导入镜像(centos、nginx、mysql)




– 导出镜像为tar包文件(方便其他主机使用镜像)
– 启动centos、nginx镜像Docker基本命令
镜像常用命令
命令列表
docker images
docker history
docker inspect
Docker基本命令
docker rmi
docker save|load
docker tag
容器常用命令
命令列表
docker run
docker ps
docker stop|start|restart
docker attach|exec
docker inspect
docker top
docker rm镜像常用命令命令列表
• 命令列表




– docker images //查看镜像列表
– docker history //查看镜像制作历叱
– docker inspect //查看镜像底层信息
– docker pull //下载镜像
– docker push //上传镜像
– docker rmi //删除本地镜像
– docker save //镜像另存为tar包
– docker load //使用tar包导入镜像
– docker search //搜索镜像
– docker tag //修改镜像名称和标签docker images
• 查看镜像列表
– 镜像仓库名称




– 镜像标签
– 镜像ID
– 创建时间
– 大小
[root@jacob ~]# docker images
REPOSITORY
centos
TAG
latest
IMAGE ID
980e0e4c79ec
CREATED
8 months ago
SIZE
196.7 MBdocker history
• 查看镜像历叱
– 了解镜像制作过程




– 详绅参考后面的dockerfile内容
[root@jacob ~]# docker history centos
IMAGE
CREATED
CREATED BY
SIZE
COMMENT
980e0e4c79ec 8 months ago
/bin/sh -c #(nop) CMD ["/bin/bash"]
0 B
<missing>
8 months ago
/bin/sh -c #(nop) LABEL name=CentOS Base Ima 0 B
<missing>
8 months ago
/bin/sh -c #(nop) ADD file:e336b45186086f7d9d 196.7 MB
<missing>
8 months ago
/bin/sh -c #(nop) MAINTAINER https://github. 0 Bdocker inspect
• 查看镜像底层信息
– 了解镜像环境变量、存储卷、标签等信息




[root@jacob ~]# docker inspect centos
... ...
{
... ...
"Id": "sha256:980e0e4c79ec933406e467a296ce3b86685e6b42eed2f873745e6a91d718e37a",
"RepoTags": [
"centos:latest"
],
"RepoDigests": [],
"Parent": "",
"Comment": "",
"Created": "2016-09-06T21:10:20.397787682Z",
"Container": "37446a1771cbec3e85b76d9159fd6a5a92743655cb92a65661e8a174bad81c7e“docker rmi
• 删除本地镜像
– 注意:启动容器时删除镜像会提示错误




[root@jacob ~]# docker rmi centos
Error response from daemon: conflict: unable to remove repository reference
"centos" (must force) - container 3daba799135c is using its referenced image
980e0e4c79ecdocker save|load
• 保存本地镜像另存为tar文件
– 方便其他人使用tar包导入镜像




[root@jacob ~]# docker save centos > centos.tar
[root@jacob ~]# ls centos.tar
centos.tar
• 使用tar包文件导入镜像
[root@jacob ~]# docker load < centos.tardocker tag
• 重命名镜像名称(复制)




[root@jacob ~]# docker images
REPOSITORY
centos
TAG
latest
IMAGE ID
980e0e4c79ec
CREATED
8 months ago
SIZE
196.7 MB
[root@jacob ~]# docker tag centos:latest test:v1
[root@jacob ~]# docker images
REPOSITORY
centos
test
TAG
latest
v1
IMAGE ID
980e0e4c79ec
980e0e4c79ec
CREATED
8 months ago
8 months ago
SIZE
196.7 MB
196.7 MB容器常用命令命令列表
• 命令列表




– docker run //运行容器
– docker ps //查看容器列表
– docker stop //关闭容器
– docker start //启动容器
– docker restart //重启容器
– docker attach|exec //进入容器
– docker inspect //查看容器底层信息
– docker top //查看容器进程列表
– docker rm //删除容器docker run
• 使用镜像启动容器




[root@jacob ~]# docker run -it centos bash
[root@bbb51ac87b08 /]#exit
[root@jacob ~]# docker run -itd centos bash
b8f218f2341c12655e6092d7d2e7fd5229824fdefce84075fb3a9569ebf82079
[root@jacob ~]# docker psdocker ps
• 列出容器列表




– docker ps 查看正在运行的容器
– docker ps -a 查看所有容器列表
– docker ps -aq 仅显示容器id
[root@server0 ~]# docker ps
CONTAINER ID
b8f218f2341c
IMAGE
centos
COMMAND
"bash"
CREATED
9 minutes ago
STATUS
Up 8 minutes
PORTS
NAMES
jovial_pasteurdocker stop|start|restart
• 管理容器




– docker stop 关闭容器
– docker start 开启容器
– docker restart 重启容器
[root@server0 ~]# docker ps
CONTAINER ID
b8f218f2341c
IMAGE
centos
COMMAND
"bash"
CREATED
9 minutes ago
[root@server0 ~]# docker stop b8f
STATUS
Up 8 minutes
PORTS
NAMES
jovial_Pasteurdocker attach|exec
• 进入容器




– docker attach 进入容器,exit会导致容器关闭
– docker exec 进入容器,退出时丌会关闭容器
[root@server0 ~]# docker ps
CONTAINER ID
b8f218f2341c
7e4e51117c40
IMAGE
centos
centos
COMMAND
"bash"
"bash"
CREATED
9 minutes ago
5 seconds ago
STATUS
PORTS
Up 8 minutes
Up 2 seconds
[root@server0 ~]# docker attach b8f
[root@server0 ~]# docker exec -it 7e4e bash
NAMES
jovial_Pasteur
pedantic_barddocker inspect
• 查看容器底层信息




[root@server0 ~]# docker ps
CONTAINER ID
b8f218f2341c
7e4e51117c40
IMAGE
centos
centos
COMMAND
"bash"
"bash"
CREATED
9 minutes ago
5 seconds ago
[root@server0 ~]# docker inspect 7e4e
STATUS
PORTS
Up 8 minutes
Up 2 seconds
NAMES
jovial_Pasteur
pedantic_bard
"Id": "0cc385eb6f63373397e678347890914347dc8efa3cefd809c1ed8c157651a261",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.2",
"MacAddress": "02:42:ac:11:00:02"docker top
• 查看容器进程列表




[root@server0 ~]# docker ps
CONTAINER ID
b8f218f2341c
7e4e51117c40
IMAGE
centos
centos
COMMAND
"bash"
"bash"
CREATED
9 minutes ago
5 seconds ago
[root@server0 ~]# docker top 7e4e
UID
root
PID
3177
PPID
3163
C
0
STIME
21:25
STATUS
PORTS
Up 8 minutes
Up 2 seconds
TTY
pts/8
NAMES
jovial_Pasteur
pedantic_bard
TIME
00:00:00
CMD
/bin/bashdocker rm
• 删除容器
– 注意,删除正在运行的容器时会提示错误




[root@server0 ~]# docker rm 7e4e
[root@server0 ~]# docker rm `docker ps -aq`案例3:镜像与容器常用指令
1. 镜像常用指令练习
2. 容器常用指令练习



习总结和答疑
总结和答疑
删除容器
问题现象
故障分析及排除删除容器问题现象
• 删除容器,提示错误:
– docker rm 0cc




Error response from daemon: You cannot remove a
running container
0cc385eb6f63373397e678347890914347dc8efa3cef
d809c1ed8c157651a261. Stop the container before
attempting removal or use -f故障分析及排除
• 原因分析




– 问题1:提示error:You cannot remove a running
container
• 解决办法
– 问题1:先关闭容器,才能删除容器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值