查看系统版本
帮助文档
https://docs.docker.com/engine/install/centos/
卸载旧的docker
安装插件
设置镜像仓库
安装
启动docker
运行hello world镜像测试docker
查看是否安装成功
卸载docker
阿里云镜像加速
删除目录
docker images 查看本地镜像
docker search 搜索镜像
docker pull 下载镜像(拉取)
docker rmi 删除镜像
新建容器并启动
docker run 启动容器
docker ps 列出正在运行的容器
exit 退出容器
docker rm 删除容器
启动和停止容器的操作
docker logs 查看日志
docker top 查看容器中的进程信息
docker inspect 查看镜像元数据
进入当前正在运行的容器
拷贝命令:从容器内拷贝文件到主机上
导入和导出
docker stats 查看cpu的状态
docker commit 提交容器副本使之成为一个新的镜像
从docker运行Ubuntu镜像,发现没有vim编辑器,使用apt-get安装vim,安装完成后,commit自己的新镜像
1. 登录阿里云Docker Registry
用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。 wrf11060…
您可以在访问凭证页面修改凭证密码。
2. 从Registry中拉取镜像
3. 将镜像推送到Registry
请根据实际镜像信息替换示例中的[ImageId]和[镜像版本号]参数。
RHEL/CentOS
Install the prerequisites:
To set up the yum repository, create the file named with the following contents:
By default, the repository for stable nginx packages is used. If you would like to use mainline nginx packages, run the following command:
To install nginx, run the following command:
nginx实例
portainer——docker的图形化管理工具
https://docs.portainer.io/v/ce-2.11/start/install/server/docker/linux
1.新建主服务器容器实例3307
2.进入/mydata/mysql-master/conf/下新建my.conf
3.修改完配置后重启master实例
5.master容器实例内创建数据同步用户
6.新建从服务器容器实例3308
7.进入/mydata/mysql-slave/conf/下新建my.conf
8.修改完配置后重启slave实例
9.在主数据库查看主从同步状态
容器的持久化和同步操作。容器间也是可以数据共享的
将容器中创建的文件数据同步到Linux系统中的文件中
1.直接使用命令行挂载 docker -v
–privileged=true
规则:容器内部被限制,只能读取不能写 ro = read only
如果主机写入内容,可以同步到容器
实现容器2继承容器1的卷规则(主机,容器1,容器2互通互联)
https://docs.docker.com/engine/reference/builder/
dockerfile就是用来构建docker镜像的构建文件。命令脚本!!!
通过脚本可以生成一个镜像
构建步骤
1.编写一个dockerfile文件
2.使用docker build 构建一个镜像
3.使用docker run 运行这个镜像
4.使用docker push发布这个镜像(docker Hub,阿里云镜像仓库)
- 每一个dockerfile的保留关键字都必须是大写
- 执行指令从上到下执行
- 、# 表示注释
- 每一个指令都会创建提交一个新的镜像层,并提交
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ULpMDvmz-1648135607231)(C:UsersliufengDesktop38eb1585b89cc75b6008e7d963fdc26.png)]
实例——创建一个centos
查看镜像构建历史
1.准备需要的镜像包!
2.编写dockerfile文件
3.构建镜像
要求:centos7镜像具备vim+ifconfig+java8
java8下载地址: https://mirrors.yangxingzhen.com/jdk/
evth-pair技术,网络模式为桥接模式
- 每启动一个容器docker就会为它分配一个IP地址,对应的也会多一对网卡!
- 容器和linux主机可以ping通,而且每个容器之间也可以通过ip地址ping通。
evth-pair 技术
docker容器带来的网卡都是一对一对的,evth-pair 就是一对的虚拟设备接口,都是成对出现的,一段连着协议,一段彼此连接,evth-pair 就像一个桥梁,连接各种虚拟网络设备。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e6cp0BL4-1648135607232)(C:UsersliufengDesktop189766e47dbaa0c048c6e0fd1970ad7.png)]
–link(使用容器名来相互通信)
不能反向ping!因为我们是用 tomcat02 --link tomcat01。
- –link本质
我们查看tomcat02的网络配置文件,可以发现它与tomcat01的关联:
所以docker 的–link命令,其实就是在hosts文件中增加了一个映射!
docker network [可选参数]命令
Commands:
connect Connect a container to a network 连接一个容器到一个网络
create Create a network
disconnect Disconnect a container from a network
inspect Display detailed information on one or more networks 查看配置网络信息
ls List networks
prune Remove all unused networks
rm Remove one or more networks 移除一个或者多个网络
-
docker network ls 网络列表
-
docker network NETWORK ID 检查一个或多个网络上的显示详细信息
网络模式
bridge 桥接模式
none 不配置网络
host 和宿主机共享网络
container 容器内网络连接
创建自定义网络:
模式:桥接模式 子网ip:192.168.0.0/24 网关:192.168.0.1
测试:
redis//mysql 不同的集群之间使用不同的网络,保证集群是隔离健康的!!
网络联通
两个不同的网络集群之间实现通信
tomcat02到 mynet网络
at01 --link tomcat02 tomcat
docker exec -it tomcat01 ping tomcat02
docker network create --driver bridge --subnet 192.168.0.0/24 --gateway 192.168.0.1 mynet
redis//mysql 不同的集群之间使用不同的网络,保证集群是隔离健康的!!
网络联通
两个不同的网络集群之间实现通信
tomcat02到 mynet网络