Docker基础篇

一、常用操作

1.1 仓库
  • 中央仓库,dockerhub,镜像最全,速度慢
  • 国内镜像:网易蜂巢、Daocloud (推荐)
  • 私有仓库:自己私服仓库,registry、harbor
1.2 镜像
docker pull daocloud.io/library/tomcat:8.5.15-jre8 #拉取镜像
docker images     #查看镜像
docker rmi fce289 #删除镜像
docker fce289 save -o tomcat.tar #导出镜像
docker load -i tomcat.tar #导入镜像
docker tag fce289 regi/tomcat:8.5 #修改名称
docker push regi/tomcat:8.5 #推送镜像
1.3 容器
docker run -d --name app1 -p 80:8080 regi/tomcat:8.5 #运行容器
docker ps   #查看运行容器
docker ps -qa #获取所有容器id
docker logs -f app1 #查看容器日志
docker exec -it app1 bash #进入容器
docker stop app1 #停止容器
docker rm app1 #删除容器
1.4 数据卷
docker create volume vm1 #创建数据卷,默认在/var/lib/docker/volumes/vm1/_data下
docker volume inspect vm1 #查看数据卷信息
docker volume ls #查看所有数据卷
docker volume rm vm1 #删除数据卷
docker run -d -p 80:80 -v vm1:/usr/share/nginx/html nginx:v1.18 #使用数据卷
docker run -d -p 80:80 -v /data/html:/var/lib/html nginx:1.18 #直接指定路径
1.5 构建
#Dockerfile常用关键字
from:依赖镜像
copy:将文件拷贝到镜像中
workdir:声明当前工作目录
cmd::执行命令,多个的话最后一个为准
run:构建执行的命令
expose:端口声明
env:声明构建时的变量

#Dockerfile构建镜像
docker build -t image:tag .

二、容器编排

2.1 安装
#下载docker-compose安装,https://docs.docker.com/compose/install/
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version
2.2 操作
docker-compose up -d  #运行服务,默认当前文件找docker-compose.yml文件
docker-compose down  #关闭并删除容器
docker-compose start|stop|restart #服务启动|停止|重启
docker-compose ps #查看进程
docker-compose logs -f  #查看日志

三、集群部署

3.1 介绍
  • manager : 管理节点
  • worker : 工作节点
  • raft : 一致性算法,高可用
3.2 操作
docker swarm --help #查看帮助
docker swarm init --advertise-addr 10.0.0.17 #初始化集群
docker swarm join-token manager #获取主节点加入命令
docker swarm join-token worker  #获取从节点加入命令
docker swarm join --token xxx 10.0.0.17:2377 #加入集群
docker swarm leave #离开集群,状态变为down显示
docker node ls #查看节点
docker service --help #查看帮助
docker service create -p 8888:80 --name nginx daocloud.io/library/nginx:1.19.0-alpine #创建服务
docker service ls #查看服务,支持从任意节点访问服务
docker service update --replicas 3 nginx #对服务进行副本扩容
docker service scale nginx=3 #扩缩容,和上面一样效果
3.3 总结
  • 弊端 :双主情况下,一个主挂了另一个主将无法使用,因此要求主节点>3台;
  • docker run: 启动容器,不具有扩缩容功能
  • docker service: 具有扩缩容功能,滚动更新