一、docker容器介绍1 .容器是指:
docker容器是一个开源的APP应用程序容器引擎,开发人员将APP应用程序统一打包,并依赖于可移植容器安装受欢迎的Linux计算机、包括windows计算机的docker引擎容器完全使用沙盒机制,相互之间没有接口就像iPhone上的app一样)。 几乎没有性能开销,可以在计算机和数据中心轻松运行。 最重要的是,他们不依赖于任何语言、框架或系统。
在docker中,启动容器的速度与启动进程一样快
2 .什么是docker:docker是一个完整的容器管理系统
Docker提供了一系列命令,使您可以更轻松地使用容器技术,而无需过多地涉及底层内核技术
3.docker的优势:1)与传统虚拟化技术相比,容器单元更小,创建速度更快
2 )传统虚拟机需要在每个虚拟机上安装操作系统
3 )容器使用共享的库和程序
4 )虚拟化技术包括操作系统OS ) >; 库支持) ) Libs ) ) >; App应用层) ) App )的三层支持
另一方面,Docker容器只需要两层,省略了操作系统,库支持Libs )->; App应用层) App ) )。
4.docker不足:1)容器隔离性不如虚拟化强
2 )公共Linux内核、安全有缺陷
3 ) SELinux很难控制
4 )很难监测容器和容器的拍照错误
二. docker容器安装
1、安装主机操作系统。 可以安装任意的操作系统。 以下教程以centos为例
2、调度员要求centos系统内核版本高于3.1.0。 必须验证当前安装的centos操作系统是否支持,并且必须输入uname -r以验证内核版本
3、以root权限登录centos系统,确认yum软件包最新更新,如果没有yum命令,可以下载到163镜像进行安装
sudo yum更新
4、如果以前安装过docker,则需要卸载
yumremovedockerdocker-common docker-selinux docker-engine
5、安装必要的软件包。 yum-util提供yum-config-manager功能
yum install -y yum-utils
6、安装docker的设备映射器驱动程序相关软件包
yum instally设备-映射器-永久-数据2
7、设置yum源
yum-config-manager– add-repo https://download.docker.com/Linux/centos/docker-ce.repo
8、查看所有仓库的docker版本,选择特定版本进行安装
yumlistdocker-ce– show duplicates|sort-r
9、安装推介器
yum安装docker-ce -版本号
10、启动并参加启动启动
系统mctl开始代理程序
Syste mctl status docker
系统启用坞站
11、验证安装是否成功
docker版本
三.容器及镜像命令
1、docker容器基于镜像启动,镜像是启动容器的核心,第一步需要下载或上传镜像
2、搜索镜像,docker search镜像名称
3、下载镜像
docker拉动镜像名称
4、看后视镜
docker images可以显示当前安装的所有镜像
5、导出镜像
docker save镜像名称:标签导出o文件名
6、镜像导入
docker加载- I文件名
7、删除镜像
docker rmi镜像名称:标签
8、启动容器
直接运行docker run -it镜像名称:标记执行脚本退出时容器自动关闭) ) ) ) ) ) ) ) ) ) ) ) ) )。
后台运行docker run -itd镜像名称:标记执行脚本退出后不关闭容器) ) ) ) ) ) ) )。
9、查看运行中的容器
杜克斯PS
显示创建的所有容器: docker ps -a
10、维修
改tag标签
docker tag 原名:原标签名 新名称:新标签
11、连接容器attach,exec
区别:attach进入容器,exit退出时会关闭容器
exec进入容器,exit退出时不会关闭容器,仍会放到后台
格式:docker attach -it 容器id /感动的溪流/bash (ctrl+p+q可以进行保存)
docker exec -it 容器id /感动的溪流/bash
12、启动容器流程
docker ps -a 找到要启动的容器id
docker start 容器id 给容器启动起来
docker exec –it 容器id /感动的溪流/bash 进入容器
注意:使用docker run –it 镜像 使用该命令相当于使用镜像新建一个容器,连接容器时使用docker exec –it 容器id 命令。
13、将现有容器制作成镜像
docker commit 容器name 新镜像名
14、指定宿主机和容器端口的映射
docker run –it –p p1:p1 –p p2:p2 镜像名 /感动的溪流/bash
15、进入docker容器带特权(可以让容器内的root拥有宿主机root的权限,例如可以使用systemctl)
docker run -itd –privileged=true -p 80:80 镜像 /usr/s感动的溪流/init
16、拷贝本地的文件到容器
docker cp 本地路径/文件 容器ID:容器路径
17、将宿主机目录挂载到容器中
docker run -it -v /宿主机目录:/容器目录 镜像名 /感动的溪流/bash
18、查看容器内部的日志输出
docker logs 容器ID或name
19、查看容器内部的进程
docker top 容器ID
20、安装portainer.io
portainer是轻量的docker环境管理UI
docker search portainer 查找portainer的镜像
docker pull portainer/portainer 下载镜像
docker run -d -p 9000:9000 –name portainer –restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /mnt/docker/portainer:/data portainer/portainer 创建容器,映射9000端口
浏览器输入:http://宿主机IP+9000端口便可登录到portainer的UI界面,可以查看到创建的镜像,容 器,在界面可以新建容器,导入导出镜像,配置网络等操作
四、docker网络 实现原理:docker使用Linux桥接技术,在宿主机虚拟一个docker容器网桥docker0,docker启动一个容器时会根据docker网桥的网段分配给容器一个IP地址container-ip,同时docker网桥是每个容器的默认网关。因为在同一个宿主机内的容器都接入同一个网桥,容器之间就能通过容器的container-ip直接通信。docker网桥是宿主机虚拟出来的,不是真实存在的网络设备,外部网络无法通过container-ip直接访问容器,如果容器希望外部能够访问到,可以通过映射容器的端口到宿主机网络,例如映射22端口便可以直接通过xshell进行连接容器。
docker的四类网络模式:
host模式
-net=host
容器和宿主机共享network namespace
container模式
-net=container:name or ID
容器和另一个容器共享network namespace
none模式
-net=none
容器有独立的network namespace,没有对其进行任何的网络配置,没有网桥连接,配置IP等
Bridge模式
-net=bridge
默认为该模式
快三稳赚10大技巧systemctl)
docker run -itd –privileged=true -p 80:80 镜像 /usr/s感动的溪流/init
16、拷贝本地的文件到容器
docker cp 本地路径/文件 容器ID:容器路径
17、将宿主机目录挂载到容器中
docker run -it -v /宿主机目录:/容器目录 镜像名 /感动的溪流/bash
18、查看容器内部的日志输出
docker logs 容器ID或name
19、查看容器内部的进程
docker top 容器ID
20、安装portainer.io
portainer是轻量的docker环境管理UI
docker search portainer 查找portainer的镜像
docker pull portainer/portainer 下载镜像
docker run -d -p 9000:9000 –name portainer –restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /mnt/docker/portainer:/data portainer/portainer 创建容器,映射9000端口
浏览器输入:http://宿主机IP+9000端口便可登录到portainer的UI界面,可以查看到创建的镜像,容 器,在界面可以新建容器,导入导出镜像,配置网络等操作
四、docker网络 实现原理:docker使用Linux桥接技术,在宿主机虚拟一个docker容器网桥docker0,docker启动一个容器时会根据docker网桥的网段分配给容器一个IP地址container-ip,同时docker网桥是每个容器的默认网关。因为在同一个宿主机内的容器都接入同一个网桥,容器之间就能通过容器的container-ip直接通信。docker网桥是宿主机虚拟出来的,不是真实存在的网络设备,外部网络无法通过container-ip直接访问容器,如果容器希望外部能够访问到,可以通过映射容器的端口到宿主机网络,例如映射22端口便可以直接通过xshell进行连接容器。
docker的四类网络模式:
host模式
-net=host
容器和宿主机共享network namespace
container模式
-net=container:name or ID
容器和另一个容器共享network namespace
none模式
-net=none
容器有独立的network namespace,没有对其进行任何的网络配置,没有网桥连接,配置IP等
Bridge模式
-net=bridge
默认为该模式