docker命令

docker命令:
docker version:查看版本
docker info :查看信息
docker images:查看本机镜像
docker ps:查看当前启动的容器
docker ps -a:查看所有的容器
docker run -it 仓库源:标签 /bin/bash :启动容器并进入bash交互终端
docker start 容器ID:启动容器
docker stop 容器ID:优雅的停止容器
docker kill 容器id:直接关闭容器
docker restart 容器id:重启容器
docker exec -it 容器id /bin/bash :进入容器
exit:退出容器
删除镜像:docker rmi 镜像id
docker save alpine -o /tmp/alpine.tar 导出镜像
docker load -i /tmp/alpine.tar 导入镜像
docker search tomcat :搜索镜像
docker pull tomcat:8.5.32:下载指定版本镜像
docker run --name MYTOMCAT -d tomcat:8.5.32:运行镜像,创建容器,指定name,并后台运行
端口映射:
docker run --name myTtomcat1 -d -p 8080:8080 tomcat_centos:jin
docker run --name myTtomcat2 -d -p 8090:8080 tomcat_centos:jin

docker cp supportPlatform.war 3666bccf5833:/root:从主机复制文件到容器内

docker logs containerid:查看容器日志

docker run -d mysql-57-centos7:latest /bin/sh -c “while true; do echo hello world; sleep 1; done” :启动容器,并每秒打印一次helloWorld
docker logs -f 4747d533ef81:查看每秒打印的helloworld

docker build -t friendlyhello . :创建一个docker镜像 -t指定名称

docker配置文件:/usr/lib/systemd/system/docker.service

当用镜像通过run来创建容器时:后台的标准操作:
1.检查镜像在本地是否存在,不存在,就从公有库下载
2.利用镜像创建容器
3.分配文件系统,并在只读的镜像层外面挂载一层可读写层
4.从宿主机配置的网桥接口中桥接一个虚拟接口到容器
5.从地址池配置一个ip地址给容器
6.执行用户指定的应用程序
7.执行完毕后容器被终止

当容器被改变后,比如安装了jdk或者添加了python3开发环境等类似情况,可以使用docker commit命令提交更新后的副本。
-m:指定提交的说明信息
-a:指定更新的用户信息
docker commit -m “ADD PYTHON3” -a “docker newbee” 容器ID

启动容器并使用-v将war包挂载到容器内tomcat目下的webapps目录下,运行war包。-v挂载单个文件
docker run -d -p 10001:8080 -v /app/JinDocker/tomcatDocker/tomcatAP/webapps/supportPlatform.war:/app/tomcat/webapps/supportPlatform.war --name Mytomcat2 tomcat:latest

启动容器并使用-v将war包挂载到容器内tomcat目下的webapps目录下,运行war包。并将目录挂载到容器的日志目录,将日志映射到宿主机上的目录。
docker run -d -p 10004:8080 -v /app/JinDocker/tomcatDocker/tomcatAP/webapps/supportPlatform.war:/app/tomcat/webapps/supportPlatform.war -v /home/was/logs/:/app/tomcat/logs --name Mytomcat4 tomcat:latest

从容器cp文件到宿主机
docker cp :/file/path/within/container /host/path/target

创建一个swarm集群:docker swarm init
向集群添加一个服务:docker service create --replicas 1 --name “服务名” “镜像名”
当前节点离开集群:docker swarm leave --force
在管理机上删除某一个work节点:docker node rm -f
查看服务的日志:docker service logs 服务ID
查看集群中的服务:docker service ls
查看具体某一个服务:docker service ps 服务名 查看时进行过滤:docker service ps -f “desired-state=running” 服务名
删除某一个服务:docker service rm 服务名
向集群添加一个node节点:docker swarm join --token 集群ID managerIP:port
向集群添加一个manager节点:docker swarm join-token manager
查看集群中的所有节点:docker node ls
节点降级,由管理节点降级为工作节点:docker node demote
节点升级,由工作节点升级为管理节点:docker node promote
更新节点:docker node update
查看节点中的任务:docker node ps
查看服务详情:docker service inspect 服务名
查看所有服务:docker service ls
更新一个服务:docker service update
一般用于更新状态或者增加服务参数:docker service update --args “ping www.baidu.com” hello 给名为hello的服务添加任务访问百度
设置某个服务个数:docker service scale 数量 给服务增加副本数量:docker service scale 服务名=4

将管理节点上的任务转移到其他节点:docker node update --availability drain manager

docker是创建容器的工具,一个容器创建出来是虚拟了一套操作系统,一台真实的物理机里可以创建出若干个容器。

docker创建某个容器的前提是有镜像,docker是根据镜像来创建容器的。如果本地没有镜像,docker会从仓库拉取。

swarm是可以将多个docker主机组成的系统转换为单一的虚拟docker主机,使得容器可以组成跨主机的子网网络。
swarm是管理docker集群,它将一群docker宿主机变成一个单一的,虚拟的主机。

数据卷是一个可供容器使用的特殊目录,它绕过文件系统,类似linux下的挂载,有很多特性:
1.数据卷可以在容器之间共享和重用
2.对数据卷的修改会立马生效
3.对数据卷的更新,不会影响镜像
4.卷会一直存在,直到没有容器

创建数据卷:使用-v参数可以在容器内创建一个数据卷,多次使用-v可以创建多个数据卷

容器的迁移:
第一步:备份:会生成一个容器的镜像快照,通过查看镜像的命令可以查看该快照。后面的操作我不说你也明白
docker commit -p 30b8f18f20b4 container-backup

数据卷容器是一个普通的容器,创建一个数据卷容器,并在其中创建一个数据卷挂载到/dbdata:
docker run -d -v /dbdata --name datajuan tomcat:latest

然后可以使用–volumes-form来挂载datajuan容器中的数据卷,例如创建Mytomcat1和Mytomcat2容器:
docker run -d --volumes-from datajuan --name Mytomcat2 tomcat:latest
docker run -d --volumes-from datajuan --name Mytomcat1 tomcat:latest

此时容器Mytomcat2和Mytomcat1都挂载同一个数据卷到相同的/dbdata目录,三个容器任何一方在该目录下写入,其他容器都能看到。
可以使用–volumes-from参数,从多个容器挂载多个数据卷,还可以从其他已经挂载了数据卷的容器来挂载数据卷:
docker run -d --volumes-from Mytomcat2 --name Mytomcat3 tomcat:latest:启动Mytomcat3容器,从已经挂载数据卷的容器Mytomcat2挂载数据卷,
它们四个容器之间/dbdata目录是完全同步的。

数据卷的备份:如果想要备份上述容器中的数据卷:新创建一个容器work,并且使用–volumes-from参数让work容器挂载Mytomcat1容器,也就是挂载其数据卷,使用-v参数,
将backup目录挂载至本机目录,然后容器启动后,使用tar cvf /backup/backup.tar /dbdata,将dbdata目录下的内容打包备份到backup下,在宿主机的/app/shujujuan
目录下即可看到备份数据
docker run --volumes-from Mytomcat1 -v /app/shujujuan:/backup --name worker tomcat:latest tar cvf /backup/backup.tar /dbdata

恢复数据:
tar xvf /backup/backup.tar

集群方式启动,并将输出日志挂载到本机目录下。本机目录需确保有
docker service create --replicas 3 --mount type=bind,src=/home/was/mount/,dst=/app/tomcat/logs --name “swarm_mout” “swarm_support”

brctl show #查看bridge网络

docker service create --replicas 3 --mount type=bind,src=/app/dockerservice/data_order_marking/logs/,dst=/app/tomcat/logs --name “data_order_marking” "data_order_marking

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值