docker常用操作
来源:互联网 发布:妖尾之数据换装番茄 编辑:程序博客网 时间:2024/05/16 08:32
本文记录笔者在日常操作docker中常用的一些命令,仅作参考:
1.docker info
这个命令在可以查看大体的docker服务运行信息,比如有多少docker服务,处于某个状态(runing,stop or paused)的服务有多少个,docker的存储位置,你在dockerhub上的用户名……等等信息
这个相对docker version更全
2.docker image镜像操作
在docker hub上拉去image
docker images #查看当前(本地)所有镜像docker search image_name #在线查找imagedocker pull image_name #下拉image到本地docekr rmi image_name/container_id #删除镜像,注意还有一个是docker rm (这是删除某个服务,后面接的是服务的id,这个是每次启动某个container会生成的一串id值)
3.启动docker 服务
我们从dockerhub上pull了一些container之后,使用docker images可以看到它们在本地的名字以及其他一些信息版本号之类的,一般通过image name来启动服务:
1.启动splash服务,可以用docker run –help查看run命令的相关选项,-it表示申请一个控制台同容器进行数据交互,-p指定占用端口
docker run -it -p 8050:8050 scrapinghub/spalsh
2.-d参数,后台启动
docker run -it -d -p 8050:8050 –name tingyun scrapinghub/splash
这个在写脚本的时候特别需要,因为你不需要利用控制台来和你交互,只要启动服务。个人觉得在服务器上运行的大部分程序,都应该优先使用后台模式,将log文件重定向到专门的日志文件中,出现错误就从log文件中查找记录。
4.日常操作docker服务
我在使用splash的时候由于渲染页面是一件比价耗费资源的事情,spalsh所做的事情相当于调用浏览器内盒去打开一个网页,虽然比正常浏览网页的代价花费小,但是由于docker的资源限制等问题,会有一个上限,这时候我找到的方法是重启docker服务,这只是暂时的对策,日后会考虑其他解决方法,比如搭建docker集群,还有待深入学习。
docekr ps #查看全部运行中runing的服务docker ps -a #查看所有的服务,无论什么状态docker ps -aq #只查看container_id这一项信息,所有服务------------------------------#注意每次关闭重启服务都会生成一个唯一的container_id,如果你要经常重新关机开机再起开某些服务的话,可能会出现大量废弃的id(stop了的容器),可以定期批量删除docker rm $(docker ps -aq) #正在运行的container并不会被删除,会提示你先stop这个服务docker rm container_id #删除某个containerdocker kill/stop container_id #两者都是停掉服务,stop和kill的区别是:stop首先发送一个SIGTERM信号给程序等待程序做一些退出前"善后"的工作,保存状态等... #kill是直接发送SIGKILL,应用程序直接退出,线上的服务的话最好使用前者,for safe
现在笔者对docker的了解程序还仅仅限于简单使用,有什么问题欢迎留言一起讨论。
这里写了一个自动查找splash 镜像并启动的脚本,很简单的代码:
//autorun_splash.py#!/usr/bin/env python# -*- coding:utf-8 -*- import sys,osimport re#os.system("docker run -d -it -p 8050:8050 scrapinghub/splash --max-timeout 3600")splash_image_id = ""os.system("docker ps -a| grep tingyun > temp.txt")with open('temp.txt','r') as f: temp = f.read() try: splash_image_id = re.search('.{12}',temp).group().replace("/","") except Exception,e: print Exception,":",e#print "当前的splash id是 : ",splash_image_id,"\n"if not splash_image_id: status_code = os.system("docker run -it -d -p 8050:8050 --name tingyun scrapinghub/splash") if status_code == 0: print "Splash not exists , start success , and named tingyun....." else: print "Error1 , fail!!!"else: status_code = os.system("docker restart %s"%splash_image_id) if status_code == 0: print "Splash exists , restart tingyun success ....." else: print "Error2 , fail!!!"temp_file = './temp.txt'if os.path.exists(temp_file): os.remove(temp_file) print "Delete temp_file success ....."
- docker及docker常用操作
- docker-容器常用操作
- Docker常用操作汇总
- docker常用操作
- docker常用操作
- docker 常用操作
- Docker常用操作
- docker常用操作
- docker常用操作
- Docker的常用操作指令
- docker 常用
- Docker入门实践(六) 常用操作命令示例汇总
- docker 操作
- docker操作
- Docker系列一:CentOS7安装Docker Swarm 集群及常用操作命令
- Docker Guideline Docker 上手操作
- docker常用技巧汇总
- 常用docker命令
- linux驱动:i2c驱动(二)
- Java 多线程:线程优先级
- Intel EX/EP/EN CPU之间的区别(转)
- QCryptographicHash 密码散列值
- MCI编程之 mciSendCommand
- docker常用操作
- 快速排序算法
- Android之---用GreenDao操作数据库
- 深度学习之卷积神经网络编程实现(二)
- 华为软件开发云试用手记(三) 规划需求
- 面试难点
- Java基础-day02-历史,跨平台,配置
- Oracle数据库连接出现的问题,TNS-12535; ORA-12541:TNS:无监听程序,
- UISlider 滑动条 按比例控制 UIProgressView 进度条 变化