














容器相关命令
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
使用镜像ubuntu:latest以交互模式启动一个容器,在容器内执行/bin/bash命令
docker run -it ubuntu:latest /bin/bash
option参数:
--name="容器新的名字":为容器指定一个名称
-d:(detache)后台运行容器并返回容器ID,也即启动守护式容器(docker容器后台运行,必须有一个前台进程)
注意:容器运行的命令如果不是那些一直挂起的命令(比如top,tail),是会自动退出的
-i:以交互模式运行容器,通常与-t同时使用
-t:为容器重新分配一个伪输入终端,通常与-i同时使用,也即启动交互式容器(前台有伪终端,等待交互)
-P:随机端口映射
-p:指定端口映射
--rm:创建一个临时容器,退出容器后自动删除容器
--restart=always:重启宿主或者重启docker的时候会自动重启容器 (不能和--rm同时使用)
--restart=策略
no 默认值 不管如何容器都不重启
on-failure 只有容器非正常退出才重启,重启docker服务或者系统都不会重启容器
unless-stopped 只要手动停止容器了,重启机器和docker服务,容器都不会自动启动(比如说我stop了容器,此时重启机器或者docker,这个容器就不会自动启动)
always 重启宿主或者重启docker的时候会自动重启容器
--network:指定网络。
若想要运行多个命令,option结尾
sh -c "命令1;命令2"
-e:指定变量
docker run -it -e aa=1 -e bb=2 ubuntu:latest /bin/bash
-u:指定用户(用户需要提前存在)
-m:限制内存大小
--cpuset-cpus=0:指定docker进程在哪个cpu上运行
--cpuset-cpus 2-4,7 指定在2、3、4、7号CPU上运行
在容器里执行4次
cat /dev/zero > /dev/null &
查看cat进程的分布
ps mo pid,comm,psr $(pgrep cat)
-p参数说明
| 参数 | 说明 |
| -p hostPort:containerPort | 端口映射 -p 8080:80 |
| -p ip:hostPort:containerPort | 配置监听地址 -p 10.0.0.100:8080:80 |
| -p containerPort | 指定容器的端口,宿主机随机生成一个端口 |
| -p hostPort:containerPort/UDP | 指定映射UDP端口 |
option参数:
-a:列出当前所有正在运行的容器+历史上运行过的 -l:显示最近创建的容器 -n:显示最近n个创建的容器 -q:静默模式,只显示容器编号
1、exit:run进去容器,exit退出,容器停止 2、ctrl+p+q:run进去容器,ctrl+p+q退出但容器不停止
docker rm [option] 容器ID/容器名
option参数:
一次性删除所有容器实例(高危)
docker rm -f $(docker ps -a -q) docker rm -f `docker ps -qa` docker ps -a -q | xargs docker rm
docker logs 容器ID/容器名 -f 持续查看日志 #查看最新的5条日志 docker logs -f 容器ID/容器名 --tail 5
docker 对象类型(默认为容器类型) inspect 对象名称 docker container inspect 容器ID/容器名 docker image inspect 镜像名/镜像ID docker network inspect 网络名/网络ID
方式一:exec(推荐, 是在容器中打开新的终端,并且可以启动新的进程,用exit退出容器终端不会导致容器的停止) docker exec -it 容器ID/容器名 bashShell 方式二:attach(直接进入容器启动命令的终端,不会启动新的进程,用exit退出,会导致容器停止) docker attach 容器ID/容器名
docker cp 容器ID/容器名:容器内路径 主机路径
docker cp 主机路径 容器ID/容器名:容器内路径
docker export 容器ID/容器名 > 文件名.tar
从tar包中的内容创建一个新的文件系统再导入为镜像
cat 文件名.tar |docker import - 镜像用户/镜像名:镜像版本号
dockedr commit -m="描述信息" -a="作者" 容器ID/容器名 目标镜像名:tag
在容器内执行命令前文提到使用exec来进入容器,也可以使用这个命令直接在容器内执行命令
# 例:在容器内创建文件 docker exec 容器ID/容器名 touch /root/1.txt
# 例:将容器重启策略修改为 always docker update --restart=always 容器ID
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。