设为首页 收藏本站
查看: 877|回复: 0

[经验分享] 第三章docker命令使用

[复制链接]

尚未签到

发表于 2018-5-26 14:32:58 | 显示全部楼层 |阅读模式
  Docker常用命令
  #查看docker详细信息
docker info
#查看版本
docker version
#查看当前docker所有镜像
docker images
#搜索可用镜像
docker search 镜像名
#下载镜像(alpine镜像小,可用来测试)
docker pull 镜像名
#创建容器不启动
docker create 镜像名
#在docker容器中运行hello world!
docker run centos echo "hello word"
#在容器中安装ntpdate的程序
docker run centos yum install ntpdate
#命令获得最后一个容器的id
docker ps -l
#查看所有的容器
docker ps -a
#容器里启动个shell环境,可以登录进入操作
docker run -it centos /bin/bash
    -t表示打开一个终端的意思
    -i表示可以交互输入
#-d表示在后台启动,以daemon方式启动
docker run -d centos:v1
#容器因某种错误而停止运行能够自动重启
docker run -d --restart=always httpd
    --restart=always(无论容器因何种原因退出,包括正常退出,都立即重启)
    --restart=on-failure:3(意思是如果启动进程退出代码非0,则重启容器,最多重启3次)
#提交保存刚修改的容器
docker commit ID new_name:tag
例如:docker  commit  ID  -a="XXX"  -m="XXX"  容器名:TAG
    -m="描述信息"
    -a="指定镜像作者"
  #更改镜像名
docker tag ID new_iso
#关闭容器
docker stop ID\docker kill ID
#启动某个容器
docker start ID
#重启一个容器
docker restart ID
#删除容器(-f强制删除)
docker rm -f ID
#删除镜像
docker rmi images
#批量删除所有容器
docker rm $(docker ps -aq)
#批量删除已经停止的容器
docker rm $(docker ps --filter ststus=exited -q)或
docker rm -v $(docker ps -aq -f status=exited)
#Docker容器导成镜像
docker export ID > cenos6.tar
#Docker导入镜像
docker import centos.tar
#备份镜像
docker save    -o 备份后镜像的名字.tar    本地镜像名
#导入镜像
docker load -i 镜像名.tar
#监控docker容器状态
docker events
docker run -d -p 8888:80 -p 8022:22 centos:v2
    -p
指定容器启动后docker上运行的端口映射及容器里运行的端口,8888表示host本机的端口,第二个80表示docke容器内的端口。用户默认访问本机8888端口,自动映射到容器里面的80端口
#查看映射的端口
docker port ID
#查看WEB应用程序日志-f相当于tail -f
docker logs -f ID
  
  切换进容器

  docker attach 容器ID
  或
  docker exec -it 容器ID /bin/bash
  attach与exec主要区别如下:
    attach直接进入容器启动命令的终端,不会启动新的进程
    exec则是在容器中打开新的终端,并且可以启动新的进程
    如果想直接在终端中查看启动命令的输出,用attach;其他情况使用exec
    如果只是为了查看启动命令的输出,可以使用dockerlogs命令-f类似于tail-f
  #退出而不终止容器运行
[ctrl + P][ctrl + Q]

  docker CPU限制
#限制容器使用CPU的百分比1000相当于CPU的1%
docker run --cpu-quota 1000
#安装比例自动调节CPU使用率(多个容器适用)
docker run --cpu-shares 1000
#绑定容器运行在哪个CPU核上
docker run --cpuset-cpus 0,3

docker内存限制
#限制容器使用的内存或--memory(超过系统会自动强制kill掉)
docker run -m 100m
#设置内存+swap的使用限额
docker run -m 100m --memory-swap 0
#暂停或恢复容器(相当于快照)
docker pause/unpause ID

#设置容器使用CPU权重,不指定默认1024
docker -c或--cpu-shares
docker run -it -c 512 httpd
cat /sys/fs/cgroup/cpu/docker/dd21114479dcb2edb0d8c8b48dee553113acbcc9050aafded4dc5340c18434a9/cpu.shares
512
#设置block IO相对权重值默认500
docker run -it --blkio-weight xx httpd

docker限制bps和iops
    bps是byte per second,每秒读写的数据量
    iops是io per second,每秒IO的次数
可通过以下参数控制容器的bps和iops:
    --device-read-bps 限制读某个设备的 bps
    --device-write-bps 限制写某个设备的 bps
    --device-read-iops 限制读某个设备的 iops
    --device-write-iops 限制写某个设备的 iops

例如    docker run -it --device-write-bps /dev/sda:10M httpd
测试    dd if=/dev/zero of=/opt/test  bs=1M count=400 oflag=direct

namespace实现容器间资源的隔离
六种namespace分别对应六种资源:Mount、UTS、IPC、PID、Network、User
Mount namespace 让容器看上去拥有整个文件系统
UTS namespace 让容器有自己的hostname,默认器的hostname是它的短ID,可以通过-h或--hostname参数设置
    docker run -h test -it httpd
IPC namespace 让容器拥有自己的共享内存和信号量(semaphore)来实现进程间通信,而不会与host和其他容器的IPC混在一起,容器拥有自己独立的一套PID,这就是PID namespace提供的功能
Network namespace 让容器拥有自己独立的网卡、IP、路由等资源
User namespace 让容器能够管理自己的用户,host不能看到容器中创建的用户
DSC0000.jpg

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-481453-1-1.html 上篇帖子: docker(iptables)目标地址转换,运行中的容器映射端口 下篇帖子: centos6.5 64bit 上安装 docker
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表