Docker - 01 常用指令、参数配置速查表

目录

Docker - 01 常用指令、参数配置速查表

Centos7 安装 Docker

阿里镜像安装

官方repo地址被墙,所以我用阿里

# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安装 Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo systemctl start docker
复制代码

加速

国内镜像慢,所以我用阿里

sudo mkdir -p /etc/docker
sudo vi /etc/docker/daemon.json
{
  "registry-mirrors": ["https://xxxxxxx.mirror.aliyuncs.com"]
}
sudo systemctl daemon-reload
sudo systemctl restart docker
复制代码

命令速查表

常用度排序

镜像操作

功能命令
拉取镜像docker pull [镜像名称:版本]
镜像列表docker images
删除镜像docker rmi [镜像名称:版本]
镜像操作记录docker history [镜像名称:版本]
给镜像设置新的仓库docker tag [镜像名称:版本] [新镜像名称:新版本]
查看镜像详细docker inspect [镜像名称:版本]
搜索镜像docker search [关键字]
仓库登录docker login

docker tag 指令得到了一个新的,和原来的镜像一模一样的镜像。后续文谈到私仓非常有用。

容器操作

功能命令
启动容器并进入docker run -ti --name [容器名称] [镜像名称:版本] bash
容器列表docker ps -a
容器提交为新的镜像docker commit [容器名称] my_image:v1.0
容器后台运行docker run -d --name [容器名称] [镜像名称:版本] bash -c "echo hello world"
容器结束后自动删除docker run --rm --name [容器名称] [镜像名称:版本] bash -c "echo hello world"
删除容器docker rm [容器名称]
进入容器 execdocker exec -ti [容器名称] bash
进入容器 attachdocker attach [容器名称]
停止容器docker stop [容器名称]
Docker 日志docker logs [容器名称]
查看容器详细docker inspect [容器名称]
查看容器最近一个进程docker top [容器名称]
继续运行被停止的容器docker restart [容器名称]
暂停一个容器进程docker pause [容器名称]
取消暂停docker unpause [容器名称]
终止容器docker kill [容器名称]
端口映射docker run -ti --name [容器名称] -p 8080:80 [镜像名称:版本] bash
容器互联docker run -ti --name [容器名称] --link [被互联容器名称]:[容器内名称] net:v1.0 bash
复制容器文件到宿主docker cp [容器名称]:[容器内目录] .
  • execattach 区别

在 exec 里面执行 exit 命令,你只是关掉了 exec 命令新开的进程,而主进程依旧在运行,所以容器并不会停止 在 attach 里面运行 exit 命令,你实际是终止了主进程,所以容器也就随之被停止了

  • -p 配置

-p hostPort:containerPort 映射所有 IP 地址上的指定端口到容器内部 -p ip:hostPort:containerPort 映射指定 IP 地址上的指定端口到容器内部 -p ip::containerPort 映射指定 IP 地址上的任意端口到容器内部

内存限制

参数简介
-m, - -memory内存限制,格式:数字+单位,单位可以是b, k, m, g,最小4M
-- -memory-swap内存和交换空间总大小限制,注意:必须比-m参数大

CPU限制

参数简介
-- -cpuset-cpus=""允许使用的CPU集
-c,- -cpu-shares=0CPU共享权值
-- -cpu-quota=0限制CPU CFS配额,必须不小于1ms,即>=1000
cpu-period=0限制CPU CFS调度周期,范围是100ms~1s,即[1000, 1000000]
sudo docker run -ti --cpuset-cpus="1,3" --name cpuset [镜像名称:版本] bash
复制代码

比如下面的指令指定容器进程可以在 CPU1 和 CPU3 上运行

数据卷

功能命令
创建一个卷docker run -ti --name [容器名称] -v /[数据卷名称] [镜像名称:版本] bash
删除一个数据卷docker rm -v [数据卷名称]
挂载宿主目录docker run -ti --name [容器名称] -v [宿主目录]:[容器内目录] [镜像名称:版本] bash
数据卷容器docker run -ti -d -v /[数据卷名称] --name [数据卷容器名称] [镜像名称:版本]
使用数据卷容器docker run -ti --volumes-from [数据卷容器名称] --name [新容器名称] [镜像名称:版本] bash
清除所有docker volume prune
备份数据卷 1 - 建立容器docker run -it --name vol_simple -v /data ubuntu /bin/bash
备份数据卷 2 - 备份docker run --rm --vloumes-from vol_simple -v$(pwd):/backup ubuntu tar cvf /backup/data.tar /data
恢复数据卷 1 - 建立目标容器docker run -it --name vol_bck -v /data ubuntu /bin/bash
恢复数据卷 2 - 解压docker run --rm --volumes-from vol_bck -v $(pwd):/backup ubuntu tar xvf /backup/data.tar -C /

备份数据卷: 指令启动了一个临时的容器,这个容器挂载了两个volume,第一个volume与要备份的volume共享,第二个volume将宿主机的当前目录挂载到容器的/backup下。容器运行后将要备份的内容(/data文件夹)备份到/backup/data.tar,然后删除容器,备份后的data.tar就留在了当前目录。

恢复数据卷: 首先运行了一个新容器作为数据恢复的目标。第二行指令启动了一个临时容器,这个容器挂载了两个volume,第一个volume与要恢复的volume共享,第二个将宿主机的当前目录挂载到容器的/backup下。由于之前备份的data.tar在当前目录下,那么它在容器中的/backup也能访问到,容器启动后将这个存档文件中的/data恢复到跟目录下,然后删除容器,恢复后的数据在vol_bck的volume中了。

参考


© 会煮咖啡的猫咪

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值