文章目录
容器相关命令
新建+启动容器
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端口 |
列出所有正在运行的容器
docker ps [OPTIONS]
option参数:
-a:列出当前所有正在运行的容器+历史上运行过的
-l:显示最近创建的容器
-n:显示最近n个创建的容器
-q:静默模式,只显示容器编号
退出容器
1、exit:run进去容器,exit退出,容器停止
2、ctrl+p+q:run进去容器,ctrl+p+q退出,容器不停止
启动已停止运行的容器
docker start 容器ID/容器名
重启容器
docker restart 容器ID/容器名
停止容器
docker stop 容器ID/容器名
强制停止容器
docker kill 容器ID/容器名
删除已停止的容器
docker rm [option] 容器ID/容器名
option参数:
-f:强制删除
一次性删除多个容器实例(高危)
docker rm -f $(docker ps -a -q)
docker ps -a -q | xargs docker rm
查看容器日志
docker logs 容器ID/容器名
-f 持续查看日志
查看容器内运行的进程
docker top 容器ID/容器名
查看所有对象属性
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/容器名:容器内路径
export导出容器
docker export 容器ID/容器名 > 文件名.tar
import导入镜像
从tar包中的内容创建一个新的文件系统再导入为镜像
cat 文件名.tar |docker import - 镜像用户/镜像名:镜像版本号
commit提交容器副本使之成为一个新的镜像
dockedr commit -m="描述信息" -a="作者" 容器ID/容器名 目标镜像名:tag
使用 exec 直接在容器内执行命令
在容器内执行命令前文提到使用exec来进入容器,也可以使用这个命令直接在容器内执行命令
# 例:在容器内创建文件
docker exec 容器ID/容器名 touch /root/1.txt
update 更新容器信息
# 例:将容器重启策略修改为 always
docker update --restart=always 容器ID
© 版权声明
文章版权归作者所有,未经允许请勿转载。