Docker容器基础第二课
Docker生态系统
核心技术:runtime(运行时)为容器运行提供底层的运行环境
支持技术:docker网络、存储、安全等技术
平台技术:docker swarm、kubernetes等容器平台技术提供容器集群功能
Docker的应用:
实现应用程序快速一致的交付
部署微服务应用
每个微服务都对应有开发、测试和生产三套环境。
Docker架构:
JSON格式:
名称空间的概念:又称命名空间,是对全局系统资源的一种封装隔离技术;处于不同名称空间的进程拥有彼此独立的全局系统资源,改变一个名称空间的系统资源只会影响当前名称空间中的进程,而不会影响其他名称空间中的进程。
类型:Cgroup(控制组);IPC(进程间通信);Network(网络);Mount(挂载);PID(进程ID);User(用户);UTS(UNIT Time-sharing system)
联合文件系统:
Docker引擎使用联合文件系统的多种变体:OverlayFS、AUFS、Btrfs等。
联合文件系统是实现docker镜像的技术基础。Docker镜像可以通过分层进行继承。
Docker版本分类
Docker Engine——docker CE简称社区版。
Docker Enterprise——docker企业版,简称docker EE。
安装docker之后的配置
- 配置docker开启自动启动
Systemctl enable docker
- 配置镜像加速器
在vim /etc/docker/daemon.json文件加入
{
"registry-mirrors":[ "https://nyakyfun.mirror.aliyuncs.com" ]
}
保存该文件之后重启docker
Systemctl daemon-reload
Systemctl restart docker
生产环境下:
开启dockery远程访问:
Vim /usr/lib/systemd/system/docker.service 在第十三行加入 -H tcp://0.0.0.0:5210保存退出。重启配置和docker。
Systemctl daemon-reload
Systemctl restart docker
查看端口号5210,有则表示开启docker远程访问。
用另一台可远程访问
[root@localhost ~]# docker -H tcp://192.168.137.100:5210 info
YAML格式
搜索nginx
[root@zhuji ~]# docker search nginx
拉取nginx
[root@zhuji ~]# docker pull nginx
导出nginx为tar包
[root@zhuji ~]# docker save nginx -o nginx.tar
导如nginx—tar包,使用nginx load -i nginx.tar
从不同的Docker注册中心拉取镜像
docker pull myregistry.local:5000/testing/test-image
仓库:集中存放某一类镜像,往往包括多个镜像文件。
公有仓库
私有仓库(公司用的较少,除非有特殊要求)
进一步理解容器的概念:
Docker运行效率是秒级的,虚拟机是分钟级的。
容器的基本信息与标识:
命名进入nginx1
[root@zhuji ~]# docker run -itd --name nginx1 nginx /bin/bash
[root@zhuji ~]# docker exec -it nginx1 /bin/bash
删除运行的容器
支持多参操作
容器的状态(status):
createc创建状态
Docker create nginx 创建nginx,不会运行。Ps查看只会查看运行的容器,-a则会都显示。
up运行状态
dodker start/docker run/docker restart
exit停止或容器运行异常
up(pause)暂停状态
查看容器详细信息:docker inspect 容器名称或id
删除容器docker rm -f 容器名称或id
生成随机端口docker run -itd -P nginx /bin/bash 脚本
开启防火墙(防火墙是做端口映射),外部同网段即可访问。
生成指定端口 docker run -itd -p 80:80 nginx
如发现不能正常访问,可能是运行的shell不正确,解决办法:
查看容器详细信息
Docker ps -a --no-trunc
查看command
将command中运行的脚本跟在docker run命令后的最后