一、容器概念
UTS 主机名和域名
IPC 信号量、消息队列和共享内存
PID 进程编号
Network 网络设备、网线栈、端口等
Mount 挂载点(文件系统)
User 用户和用户组,内核3.8支持
blkio 块设备IO
cpu cpu
cpuacct cpu资源使用报告
cpuset 多处理器平台上的CPU集合
devices 设备访问
freezer 挂起或恢复任务
memory 内存用量及报告
perf_event 对cgroup中的任务进行统一性能测试
net_cls cgroup中的任务创建的数据报文的类别标识符
chroot
namespace
cgroups
- Docker容器引擎:LXC --> libcontainer --> runC
- Docker Daemon:Docker server端,默认只提供socket文件接入
- Registry:镜像仓库,默认通信协议HTTPS
- Containers:容器
- Images:镜像
二、Docker安装
64 bits CPU
kernel-3.10+
# yum install -y yum-utils device-mapper-persistent-data lvm2
# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# yum makecache fast
# yum list docker-ce.x86_64 --showduplicates | sort -r
# yum install https://mirrors.aliyun.com/centos-vault/7.3.1611/extras/x86_64/Packages/container-selinux-2.9-4.el7.noarch.rpm
# yum install docker-ce-18.06.0.ce-3.el7 -y
# mkdir -p /etc/docker
# tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxxx.mirror.aliyuncs.com"] #加速地址登录阿里云后在容器镜像服务中获取
}
EOF
# systemctl daemon-reload
# systemctl start docker
# systemctl enable docker.service
# vim /etc/docker/daemon.json
{
"hosts": ["tcp://0.0.0.0:2375","unix:///var/run/docker.sock"]
}
# systemctl restart docker
# docker -H 192.168.100.9:2375 ps #客户端使用tcp连接
# vim /etc/docker/daemon.json
{
"bip": "10.0.0.254/16",
"fixed-cidr": "10.0.0.0/16",
"mtu": 1500,
"default-gateway": "10.0.0.1",
"dns": ["114.114.114.114","8.8.8.8"]
}
# docker network create --driver bridge --subnet "172.27.0.0/16" --gateway "172.27.0.1" docker1
# docker network ls
# ip link set br-0a9309aaa170 down
# ip link set br-0a9309aaa170 name docker1 #修改接口名字
# ip link set docker1 up
# docker network rm docker1 #删除网桥
# docker info
# docker version
# docker pull centos
# docker run --name d1 -it centos:latest
# docker start -ai 64d96be72c59 #再次进入容器
# docker run --name web1 -d nginx:1.14
# docker inspect e75cfa7018ce |grep IPAddress
"SecondaryIPAddresses": null,
"IPAddress": "172.17.0.2",
"IPAddress": "172.17.0.2",
# curl 172.17.0.2
三、Docker Client命令
attach 将本地标准输入,输出和错误流附加到正在运行的容器
build 从Dockerfile构建映像
commit 根据容器的更改创建新图像
cp 在容器和本地文件系统之间复制文件/文件夹
create 创建一个新容器
diff 检查容器文件系统上文件或目录的更改
events 从服务器获取实时事件
exec 在正在运行的容器中运行命令
export 将容器的文件系统导出为tar存档
history 显示图像的历史记录
images 列出图像
import 从tarball导入内容以创建文件系统映像
info 显示系统范围的信息
inspect 返回有关Docker对象的低级信息
kill 杀死一个或多个正在运行的容器
load 从tar存档或STDIN加载图像
login 登录Docker注册表
logout 从Docker注册表注销
logs 获取容器的日志
pause 暂停一个或多个容器中的所有进程
port 列出端口映射或容器的特定映射
ps 列出容器
pull 从docker仓库中拉取镜像
push 将图像或存储库推送到注册表
rename 重命名容器
restart 重新启动一个或多个容器
rm 删除一个或多个容器
rmi 删除一个或多个图像
run 在新容器中运行命令
save 将一个或多个图像保存到tar存档(默认情况下流式传输到STDOUT)
search 在Docker Hub中搜索图像
start 启动一个或多个已停止的容器
stats 显示容器资源使用情况统计信息的实时流
stop 停止一个或多个正在运行的容器
tag 创建一个引用SOURCE_IMAGE的标记TARGET_IMAGE
top 显示容器的运行进程
unpause 取消暂停一个或多个容器中的所有进程
update 更新一个或多个容器的配置
version 显示Docker版本信息
wait 阻止,直到一个或多个容器停止,然后打印退出代码