docker 常用命令

yum provides 软件名 检测软件所需要的依赖包

一、系统命令

systemctl start docker
systemctl stop docker
systemctl restart docker
systemctl reload docker
systemctl enable docker


二、镜像相关命令

查看镜像

docker images 查看docker所有下载好的镜像

docker info 查看docker所有已安装组件

docker version 查看docker-client/docker-server详细信息

docker --version 查看docker 版本号

docker inspect 镜像名:标签 查看镜像的分层ID号

搜索镜像

docker search 软件名 搜索指定软件镜像

docker history 镜像名:标签 查看镜像的层结构,执行命令结构

拉取镜像

docker pull 镜像名 下载拉取docker镜像

docker push 镜像名 上传docker镜像

删除镜像

docker rmi 镜像名 删除docker镜像

docker rm -f 镜像名 删除正在运行的docker容器

docker kill 镜像名 将正在运行的docker容器作为错误的形式进行删除

其他镜像操作

docker tag (旧)软件名:标签 (新)软件名:标签 修改镜像tag标签

docker commit ID号 新的镜像名:标签 根据基础BASE镜像创建一个新的可写容器

docker save -o 自命名.tar包 镜像名:标签 封装一个镜像成 tar 包

docker load --input *.tar包 解封一个镜像tar包到本地


三、容器相关命令

选项:

-d 以常ID的方式放在后台运行
-p 在真实机上开启一个端口号,容器当中映射此端口号 例:-p 5000:5000
-t 打开一个新的终端
-i 以新的交互式运行
-h 指定独立主机名 -h myhost1
–name 指定容器别名
–rm 以临时方式打开一个容器,一旦停止就会删除
–restart always 当docker服务重启后,会自动重新启动容器三次
–volume / -v 数据卷选项,将真实机的目录挂载到容器当中 格式: 目录/文件:目录
–privileged 提权

运行容器

docker run -itd 镜像名:标签 后台运行

docker run -it 镜像名:标签 前台终端运行

控制容器

docker start ID号 启动一个停止的容器

docker stop ID号 停止一个启动的容器

docker pause ID号 挂起一个启动的容器

docker unpause ID号 恢复一个挂起的容器

查看容器

docker ps 查看正在运行的容器

docker ps -a 查看已经停止的容器

进入容器

docker exec -it 镜像名:标签 /bin/bash 进入容器,退出后保留进程

docker attach -it 镜像名:标签 /bin/bash 进入容器,退出后结束容器进程


四、docker状态码结构

[外链图在这里插入图片描述

create 创建容器 ,会显示 created 状态,经过start命令后到达 start状态,才能runing(up)

run 运行容器,会经过start状态,到达 running(up)

rm 删除容器,到达 distory 毁灭状态,直接删除

running(up) ,包含 stop,kill,restart,pause,unpause,kill by,container process

stop 停止,会到达 stopd exited 状态,停滞状态。
kill 删除,会先通过 stop 在进入到 stopd exited 状态,停滞状态。
restart 重启,会通过 start 重新到达 running(up)
pause 挂起,会到达 paused挂起状态,通过 unpause重新恢复到 running(up) 状态

kill by (out-of-memory):OCM状态,容器报错,内存不多,CPU不足,导致的程序结束

container process exited:进程出错,docker进程被入侵,导致整个容器结束
	会进入到 should restart状态,尝试重启
	分为两种可能  1.(no)  没有重启成功直接进入 stopd exited 状态停止
		    2.(yes) 尝试重启成功恢复到 running(up) 状态继续工作


五、资源限制命令

progrium/stress 测试资源控制镜像
–vm : 启动几个线程 progrium/stress --vm 1
–vm-bytest : 每个线程输出多少字节 progrium/stress --vm 1 --vm-bytest 280M

1.内存:
-m : 指定物理内存限制

–memory-swap :指定物理内存+swap交换分区限制

例:docker run -it -m 200 --memory-swap 300M --name test centos:7

2.CPU:

-c / --cpu-shares : 设置CPU权重值,默认1024

–cpu : 设置CPU个数

例:docker run -it --name test --cpu-shares 512 centos:7 --cpu 1

3.blkio:

–blkio-weight:硬盘得读写权重值,默认500

例:docker run -it --name test --blkip-weight 600 centos:7

–device-read-bps: 硬盘读取速度 /s
–device-write-bps: 硬盘写入速度 /s

–device-read-iops: 硬盘读取IO次数 /s
–device-write-iops: 硬盘写入IO次数 /s

例:docker run -it --name test --device-write-bps /dev/sda:30MB centos:7

time dd if=/dev/zero of=test.out bs=1M count=800 oflag=direct


六、提权命令

–privileged 提权,特权

例: docker run -it --restart always --name web --privileged centos:7 /sbin/init


七、网络命令

–network 指定网卡
–network none 封闭网络,隔离网络
–network host 共享网络,与主机完全相同
–network joine 容器网络,容器间使用相同IP
–network bridge 桥接网络,容器与真实机形成网桥

docker network ls

brctl show


八、数据卷命令

bind mount

–tmpfs /目录/ 内存挂载
例:docker run -itd --name test --tmpfs /usr/local/apache2/htdocs/ httpd:latest
// 将 httpd 容器上的 /usr/local/apache2/htdocs 目录放到内存中

-v / --volume 真实机目录:容器目录
例:docker run -itd --name test --volume ~/htdocs/:/usr/local/apache2/htdocs httpd:latest
// 将 真实机 /htdocs/ 目录 挂载到 容器上的 /usr/local/apache2/htdocs/目录

–mount type=bind,soure=真实机目录,destination=容器目录

例:docker run -itd --name test
> --mount type=bind,source=/root/htdocs,destination=/usr/local/apache2/htdocs httpd:latest
// 将真实机的 /root/htdocs 目录 挂载到 容器上的 /usr/local/apche2/htdocs 目录

managed volume

-v / --volume 容器目录

例:docker run -itd --name test --volume /usr/local/apache2/htdocs httpd:latest
// 将 容器上的 /usr/local/apache/htdocs/ 目录 挂载到 物理机 /var/lib/docker/ID…/_data 目录

-v / --volume ID号:容器目录

例:docker run -itd --name test --volume ID号:/usr/local/apache2/htdocs httpd:latest
// 将 (ID号) 容器的挂载目录,作为本容器的挂载目录。将 /usr/local/apache2/htdocs 目录挂载到 (ID号) 容器 的 /var/lib/docker/ID号/_data

docker volume create 自定义卷名

docker volume ls 查看系统所有数据卷名

docker volume prune 数据卷名修剪 y

例: docker volume create volume-shm // 创建一个叫 volume-shm的数据卷

-v / --volume 卷名:容器目录

例:docker run -itd --name bbox1 --volume volume-shm:/data/ busybox:latest
// 将 容器 /data/ 目录 挂载到 /var/lib/volumes/volume-shm/_data ,此时的存储路径根据数据卷名来进行改变。

–volumes-from 容器名

1、创建容器,并指定数据卷目录
docker create --name vc_data \
--volume  /root/htdocs/:/usr/local/apache2/htdocs/ \
--volume  /usr/local/apache2/logs/ \
httpd:latest

2、根据容器设置容器共享
docker run -itd --name test \
--volumes-from vc_data \
httpd:latest 

3、同时指定多个容器共享
docker run -itd --name test \
--volumes-from  容器1 \
--volumes-from  容器2 \
--volumes-from  容器3 \
httpd:latest 
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值