4.3 Docker容器常用命令

新建+启动容器:docker run

docker run [OPTIONS] IMAGE [COMMAND] [TAG...]
# OPTIONS:(有的是一个减号,有的是两个减号,请注意区分)
# --name="新容器的名称"  为容器指定一个名称,不指定系统默认生成
docker run --name my_redis redis

# -d: 后台运行容器并返回容器ID,也就是启动守护式容器(后台运行)
dokcer run -d redis
# 注意:docker run -it redis启动为前台交互式启动,当关闭了命令行窗口redis也就随之关闭了,不建议用# 这种方式启动


# -i:以交互式模式运行容器,通常与-t一起使用
# -t:为容器重新分配一个伪输入终端,通常与-i一起使用
# 意思就是启动交互式容器,前台有伪终端,等待交互,
# 例如:docker run -it centos /bin/bash,命令执行后的结果就跟在centos打开了一个终端命令窗口一样
# 的效果
docker run -it centos /bin/bash

# -P 随机端口映射 大写的P
# -p 指定端口映射 小写的P
docker run -p 8080:80 tomcat

# --privileged 授予最高权限,否则有时候会出现操作容器时出现权限不足的情况
docker run -p -it --privileged=true tomcat 

查询当前运行的容器列表:docker ps

docker ps [OPTIONS]

# OPTIONS:
# -a:列出当前所有正在运行的容器+历史运行过的容器
docker ps -a

# -l:显示最近创建的容器
docker ps -l

# -n:显示最近创建的n个容器
docker ps -n 5

# -q:静默模式,只显示容器编号
docker ps -q

退出容器 :

两种退出方式,各有不同:

1. 直接输入exit退出容器,容器停止,docker ps就查不到该容器了

2. ctrl+p+q退出容器,容器不停止,docker ps仍然可以查到该容器。这种方式退出的容器,可以使用下面命令重新进入容器:

docker attach 容器ID或容器名称

# 或

docker exec -it 容器ID或容器名称 /bin/bash 

# 上面两个的区别:
# attach直接进入容器启动命令的终端,不会启动新的进程用exit退出时,会导致容器的终止
# exec是在容器中打开新的终端,并且可以启动新的进程,用exit退出时,不会导致容器的终止

启动已停止的容器:docker start 

先运行docker ps -n 2查看一下历史的容器列表

然后输入命令把已停止的容器重新启动 

docker start 容器ID或容器名称

# 根据容器ID启动
docker start 3402cefa9774

# 根据容器名称启动
docker start strange_mccarthy

重启、停止、强制停止容器:docker restart | stop | kill

# 根据容器ID重启容器
docker restart 容器ID
# 根据容器名称重启容器
docker restart 容器名称

# 根据容器ID停止容器
docker stop 容器ID
# 根据容器名称停止容器
docker stop 容器名称

# 根据容器ID强制停止容器
docker kill 容器ID
# 根据容器名称强制停止容器
docker kill 容器名称

删除已停止的容器:docker rm

# 根据容器ID删除已停止的容器
docker rm 容器ID

# 根据容器名称删除已停止的容器
docker rm 容器名称

# 如果想删除正在运行的容器,可以使用-f强制删除
docker rm -f 容器ID或容器名称

# 根据命令嵌套方式批量删除容器,尽量不要加上-f
docker rm -f $(dokcer ps -q -a)

# 使用参数参入的方式批量删除,尽量不要加上-f
docker ps -q -a | xargs docker rm -f

查看容器日志:docker logs

docker logs

查看容器内运行的进程: docker top

docker top 容器ID

# 或

docker top 容器名称

查看容器内部细节:docker inspect

docker inspect 容器ID

# 或

docker inspect 容器名称

将容器文件拷贝到主机上:docker cp

docker cp 容器ID:容器内路径 目的主机路径

# 以ubuntu为例子:
# 在tmp目录下创建一个空的文本文档,并拷贝到主机的/usr/local路径下

# 1.进入ubuntu
docker exec -it 容器ID /bin/bash
# 2.进入tmp目录,并创建txt
cd /tmp
touch a.txt
# 3.退出容器,在主机上执行拷贝命令
docker cp 容器ID:/tmp/a.txt /usr/local

 导入和导出容器:import 和 export

# 导出容器为tar包
# docker export 容器ID > 存储的路径+文件名.tar
docker export 容器ID > /usr/local/my_docker.tar

# 导入容器tar包为docker镜像
# cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号
cat /usr/local/my_docker.tar | docker import - junpeng/test_import:8.8.8

提交容器副本:docker commit

docker commit提交容器副本使之成为一个新的镜像

# docker commit -m="提交时的描述信息" -a="作者" 容器ID 目标镜像名:[标签名]
docker commit -m="test docker commit" -a="Junpeng-Li" 容器ID junpeng/my_docker:1.0

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值