查看系统是否已安装docker
rpm -qa|grep docker
安装yum-utils
yum install yum-utils
设置阿里云仓库,速度快点
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新yum软件包索引
yum makecache fast
安装最新版本的 Docker Engine-Community 和 containerd
yum install docker-ce docker-ce-cli containerd.io
如果安装指定版本,可以先列出并排序您存储库中可用的版本
yum list docker-ce --showduplicates | sort -r
安装指定版本,例如
yum install docker-ce-19.03.12 docker-ce-cli-19.03.12 containerd.io
修改docker配置文件
mkdir /etc/docker vim /etc/docker/daemon.json
添加如下内容
{
"insecure-registries": ["registry.cn-shenzhen.aliyuncs.com" ],
"registry-mirrors": ["http://hub-mirror.c.163.com"],
"storage-driver": "overlay2",
"storage-opts": ["overlay2.override_kernel_check=true"],
"graph": "/var/lib/docker",
"hosts": [
"tcp://0.0.0.0:2375",
"unix:///var/run/docker.sock"
],"log-driver": "json-file",
"log-opts": {
"labels": "production_status,geo",
"env": "os,customer",
"max-size": "10m",
"max-file": "10"
}
}
防火墙开启端口2375
firewall-cmd --zone=public --add-port=2375/tcp --permanent firewall-cmd --reload
重新加载
systemctl daemon-reload
设置开机自启
sed -i 's/ExecStart=\/usr\/bin\/dockerd -H fd:\/\/ --containerd=\/run\/containerd\/containerd.sock/ExecStart=\/usr\/bin\/dockerd/g' /usr/lib/systemd/system/docker.service
systemctl enable docker
启动docker服务
systemctl start docker
关闭docker服务
systemctl stop docker
查看启动状态
systemctl status docker
Docker 一些命令
列出容器
docker ps
列出名称前面是eureka的容器
docker ps --filter "name=eureka*"
获取容器的日志
查看指定时间后的日志,只显示最后100行:
docker logs -f -t --since="2022-02-01" --tail=100 CONTAINER_ID
查看最近30分钟的日志:
docker logs --since 30m CONTAINER_ID
查看某时间段日志:
docker logs -t --since="2022-02-01T14:00:00" --until "2022-02-01T18:00:00" CONTAINER_ID
参数说明:
-f, --follow 跟踪实时日志
--since string 显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
--tail string 从日志末尾显示多少行日志, 默认是all
-t, --timestamps 显示时间戳
--until string 显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)
获取容器的日志并形成文件
docker logs CONTAINER_ID | cat $1 > /opt/1.log
列出本地镜像
docker images
Docker Swarm集群配置
Docker Swarm 是 Docker 的集群管理工具。
Swarm将不同的docker容器集成为管理节点-工作节点的集群模式,建立联系的同时也可以分配计算资源,实现以docker容器为单元的并行任务。
初始化主节点IP,下面IP根据实际填写
docker swarm init --advertise-addr 172.16.21.2
提示如下:
Swarm initialized: current node (8azm131yfktebn614qz52pog0) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-clddfohcl2iz236biiyiu6pufe6xmuzt3qfun1vdw1zweme120-lin75iwfgwar73hhfifsirnpc 172.16.21.2:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
备注:如果要加入集群,可按上面命令docker swarm join……执行
运行下面命令,如果看到结果有一行swarm:active,说明swarm已被激活
docker info
查询节点情况,第一列的ID值会为上面的 8azm131yfktebn614qz52pog0
docker node ls
docker 提供多种网络模式,可以根据需求来使用。
例如在一台主机(host)或者同一个docker engine上面运行continer,就可以选择bridge网络模式;
在多台host上来运行多个container来协同工作,overlay模式就是我们的首选。
docker network create --driver overlay app_net
节点打标签,最后的值对应上面的节点ID值
docker node update --label-add role=gateway 8azm131yfktebn614qz52pog0
Docker Stack
基于Docker Swarm,在Compose(.yml)声明文件中定义应用,然后通过docker stack deploy命令完成部署和管理。
列出服务
docker service ls
列出现有堆栈
docker stack ls
删除堆栈
docker stack rm
部署新的堆栈或更新现有堆栈
docker stack deploy [OPTIONS] STACK
参数说明:
--bundle-file 分布式应用程序包文件的路径
--compose-file, -c Compose文件的路径
--with-registry-auth 不加则默认false,将注册表身份验证详细信息发送给Swarm代理