Docker学习

1 查看运行容器

Docker ps

2 查看所有容器

Docker ps –a

3 进入容器

其中字符串为容器ID

Docker exec –it dddd22222kkkk /bin/bash

4停用全部运行中的容器

Docker stop $(docker ps -q)

5 删除全部容器

Docker rm $(docker ps -aq)

6 1条命令停用并删除容器

Docker stop $(docker ps -q) & docker rm $(docker ps -aq)

7 查看当前有什么images

Docker images

8 删除images,通过images的id来指定删除谁

Docker rmi <image id>

9 想要删除untagged images

Docker rmi $(docker images | grep “^<none>”|awk “{print $3}”)

10 删除全部image

Docker rmi $(docker images -q)

11 强制删除全部images的话

Docker rmi –f $(docker images -q)

13 如何查看docker的日志

docker logs -f -t --since="2018-05-31" --tail=10 edu_web_1

--since : 此参数指定了输出日志开始日期,即只输出指定日期之后的日志。

-f : 查看实时日志

-t : 查看日志产生的日期

-tail=10 : 查看最后的10条日志。

edu_web_1 : 容器名称

14查看日志:  

docker logs -f dockername

15 docker stack命令

根据compose文件创建stack

Docker stack deploy – compose-file docker-compose.yml  app

列出所有stack

Docker stack ls

 

列出 stack中的所有任务

Docker stack ps

删除stack

Docker stack rm

列出stack 中所有服务

Docker stack services stack-name

16.Docker swarm学习命令:

(1)初始化swarm manager并绑定网卡地址

Docker swarm init –advertise-addr 192.168.10.11

(2)强制删除集群,如果是manager,则需要加—force

  Docker swarm leave –force

  Docker node rm docker-119

(3)查看swarm worker的连接令牌

Docker swarm join-token worker

(4)查看swarm manager的连接令牌

Docker swarm join-token manager

(5)使旧令牌无效并生成新令牌

Docker swarm join-token –rotate

(6)加入docker swarm集群

docker swarm join --token SWMTKN-1-2nwj6pn7ajv1rgc7ekfuqv8wszp2vl4oln3z0v2c8lflopp3bs-bdh86evt9mnacsv2e3tn9sekh 192.168.10.146:2377

(7)查看集群中的节点

Docker node ls

正确的删除姿势就是node demote -> node rm

docker node rm 
docker node demote 

(8)查看集群中节点信息

Docker node inspect docker-119 –pretty

(9)调度程序可以将任务分配给节点

Docker node update –availability active docker-118

(10)调度程序不向节点分配新任务,但是现有任务仍然保持运行

Docker node update –availability pause docker-118

(11)调度程序不会向新任务分配节点。调度程序关闭任何现有任务并在可用节点上安排他们

Docker node update –availability drain docker-118

(12)添加节点标签:

 Docker node update  --label-add label1 --label-add bar=label2 docker-117

(13)删除节点标签

Docker node update –label-rm label1 docker-117

(14)将节点升级为:manager

Docker node promote docker-119

(15)将节点降级为worker

Docker node demote docker-118

(16)查看服务列表

Docker service ls

(17) 查看服务的具体信息

Docker service ps redis

(18)创建一个不定义name,不定义replicas的服务

Docker service create nginx

(19) 创建一个指定name的服务

docker service create --name my_web nginx

创建一个指定namerun cmd的服务

docker service create --name helloworld alping ping docker.com

创建一个指定nameversionrun cmd的服务

docker service create --name helloworld alping:3.6 ping docker.com

创建一个指定nameportreplicas的服务

docker service create --name my_web --replicas 3 -p 80:80 nginx

为指定的服务更新一个端口

docker service update --publish-add 80:80 my_web

为指定的服务删除一个端口

docker service update --publish-rm 80:80 my_web

redis:3.0.6更新至redis:3.0.7

docker service update --image redis:3.0.7 redis

配置运行环境,指定工作目录及环境变量

docker service create --name helloworld --env MYVAR=myvalue --workdir /tmp --user my_user alping ping docker.com

创建一个helloworld的服务

docker service create --name helloworld alpine ping docker.com

更新helloworld服务的运行命令

docker service update --args “ping www.baidu.com” helloworld

删除一个服务

docker service rm my_web

在每个群组节点上运行web服务

docker service create --name tomcat --mode global --publish mode=host,target=8080,published=8080 tomcat:latest

创建一个overlay网络

docker network create --driver overlay my_network

docker network create --driver overlay --subnet 10.10.10.0/24 --gateway 10.10.10.1 my-network

创建服务并将网络添加至该服务

docker service create --name test --replicas 3 --network my-network redis

删除群组网络

docker service update --network-rm my-network test

更新群组网络

docker service update --network-add my_network test

创建群组并配置cpu和内存

docker service create --name my_nginx --reserve-cpu 2 --reserve-memory 512m --replicas 3 nginx

更改所分配的cpu和内存

docker service update --reserve-cpu 1 --reserve-memory 256m my_nginx

指定每次更新的容器数量

--update-parallelism

指定容器更新的间隔

--update-delay

定义容器启动后监控失败的持续时间

--update-monitor

定义容器失败的百分比

--update-max-failure-ratio

定义容器启动失败之后所执行的动作

--update-failure-action

创建一个服务并运行3个副本,同步延迟10秒,10%任务失败则暂停

docker service create --name mysql_5_6_36 --replicas 3 --update-delay 10s --update-parallelism 1 --update-monitor 30s --update-failure-action pause --update-max-failure-ratio 0.1 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6.36

回滚至之前版本

docker service update --rollback mysql

自动回滚 
如果服务部署失败,则每次回滚2个任务,监控20秒,回滚可接受失败率20%

docker service create --name redis --replicas 6 --rollback-parallelism 2 --rollback-monitor 20s --rollback-max-failure-ratio .2 redis:latest

创建服务并将目录挂在至container

docker service create --name mysql --publish 3306:3306 --mount type=bind,src=/data/mysql,dst=/var/lib/mysql --replicas 3 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6.36

Bind带来的风险 
1
、绑定的主机路径必须存在于每个集群节点上,否则会有问题 
2
、调度程序可能会在任何时候重新安排运行服务容器,如果目标节点主机变得不健康或无法访问 
3
、主机绑定数据不可移植,当你绑定安装时,不能保证你的应用程序开发方式与生产中的运行方式相同

添加swarm配置

echo "this is a mysql config" | docker config create mysql -

查看配置

docker config ls

查看配置详细信息

docker config inspect mysql

删除配置

docker config rm mysql

添加配置

docker service update --config-add mysql mysql

删除配置

docker service update --config-rm mysql mysql

添加配置

docker config create homepage index.html

启动容器的同时添加配置

docker service create --name nginx --publish 80:80 --replicas 3 --config src=homepage,target=/usr/share

查看服务日志:

docker service logs命令用于获取服务的日志。docker服务记录命令批量检索执行时存在的日志。

注意:此命令仅适用于使用json-file或日志记录驱动程序启动的服务。

用法

docker service logs [OPTIONS] SERVICE

Shell

选项

名称,简写默认说明
--detailsfalse显示额外的详细信息到日志中
--follow, -ffalse按照日志输出
--no-resolvefalse不要将ID映射到名称
--since 从某个时间戳起显示日志
--tailall从日志结尾的指定行数开始显示
--timestamps, -tfalse显示时间戳

查看 容器日志:

docker logs -f -t --since="20187-7-30" --tail=10 docker_container_name
 
--since : 此参数指定了输出日志开始日期,即只输出指定日期之后的日志。
 
-f : 查看实时日志
 
-t : 查看日志产生的日期
 
-tail=10 : 查看最后的10条日志。
 
docker_container_name : 容器名称
 

docker service 

创建一个 Docker service

docker service create --replicas 1 --name myhelloworld alpine ping docker.com

 

--replicas: 标识运行实例个数

--name: service 的名称

alpine ping docker.com: 运行参数,表明service将运行一个Alpine Linux container,并且执行 ping docker.com 的命令。

 

 

审视 Docker service

$ docker service inspect --pretty myhelloworld

--pretty: 指定返回为简约格式,否则,讲义JSON格式返回

 

查看 service 上运行 node 的情况

$ docker service ps myhelloworld

 

 

查看容器详细信息

docker ps

 

 

修改service 规模

$ docker service scale myhelloworld=5

 

删除 service

$ docker service rm myhelloworld

 

轮询更新

$ docker service create \

  --replicas 3 \
  --name redis \
  --update-delay 10s \
  redis:3.0.6

 

 

 查看 service 状态

$ docker service inspect --pretty myredis

 

 

更新 service

更新节点

$ #docker service update --image redis:3.0.6 myredis

指定service的某个节点排满状态

$ docker node update --availability drain worker1

此后,将不会再在worker1 上面分派任务。


 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值