Docker 常用命令

1.服务命令

sudo systemctl stop docker:停止服务
sudo systemctl start docker: 启动docker服务

2.镜像命令

查询本地

docker images :查看所有的镜像

  • -a:列出本地所有的镜像(含中间映像层)
  • -q:只显示镜像ID
  • –digests:显示镜像的摘要信息
  • –no-trunc:显示完整的镜像信息

删除本地

docker rmi -f 镜像 ID:删除单个
docker rmi -f 镜像名1:TAG 镜像名2:TAG: 删除多个
docker rmi -f $(docker images -qa) :删除全部

-f :强制删除;

查询远程

docker search xxx :查询xxx 仓库所有镜像
docker search -s 30 xxx : -e 查询点赞数量大于30的xxx所有镜像

如下图
name:名称

  • –no-trunc:显示完整的镜像描述
  • -s:列出收藏数不小于指定值的镜像
  • –automated:只列出 automated build 类型的镜像

3.容器命令

启动容器

docker start 容器 ID 或者容器名

查看运行容器

docker ps

  • -a :列出当前所有正在运行的容器+历史上运行过的
  • -l :显示最近创建的容器
  • -n:显示最近n个创建的容器
  • -q :静默模式,只显示容器编号
  • –no-trunc :不截断输出。

查看容器内部细节

docker inspect 容器id

运行容器

docker run

  • –name=“容器新名字”: 为容器指定一个名称
  • -d: 后台运行容器,并返回容器 ID,也即启动守护式容器
  • -i:以交互模式运行容器,通常与 -t 同时使用
  • -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用
  • -P(大写): 随机端口映射
  • -p: 指定端口映射,有以下四种格式
    ip:hostPort:containerPort
    ip::containerPort
    hostPort:containerPort
    containerPort

关于-d 的说明
1.使用镜像 centos:latest 以后台模式启动一个容器 docker run -d centos
2.然后 docker ps -a 进行查看, 会发现容器已经自动退出
在这里插入图片描述

原因: Docker 容器后台运行,就必须有一个前台进程 ,如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的。 这个是 Docker 的机制问题,比如你的 web 容器,我们以 nginx 为例,正常情况下,我们配置启动服务只需要启动响应的 service 即可。例如service nginx start,但是这样做,nginx 为后台进程模式运行,就导致Docker 前台没有运行的应用,这样的容器后台启动后,会立即自杀因为他觉得他没事可做了,但是redis这种一直都是有后台所以没问题。 所以,最佳的解决方案是,如果你是centos这种前台等待用户操作的,就需要用 -it bin/bash 等待输入,不能以后台运行,如果你是redis,mysql这种后台服务,那么你就需要后台运行,因为前台运行的话,一但界面关闭就停止服务了

删除容器

docker rm 容器id
-f :强制删除;

重启容器

docker rm 容器 ID:删除一个容器
docker rm -f $(docker ps -a -q) :一次性删除全部容器
docker ps -a -q | xargs docker rm:一次性删除全部容器

停止容器

docker stop 容器 ID 或者容器名

强制停止容器

docker kill 容器ID 或者容器名

退出容器

首次run 进去的时候

  • exite:容器停止退出
  • Ctrl + P + Q:容器不停止退出

非首次run进去,而是通过docker exec -it 容器id /bin/bash 进去不影响

进入容器

docker exec -it 容器id /bin/bash
docker attach 容器id /bin/bash (建议不要使用,会停止容器)
二者区别:
在这里插入图片描述

查看容器日志

docker logs -f -t --tail 容器 ID

  • -t 是加入时间戳
  • -f 跟随最新的日志打印
  • –tail 数字显示最后多少条

文件复制

docker cp :用于容器与主机之间的数据拷贝。
docker cp 111 容器名称/容器id :/usr/ (冒号不要丢,代表容器)
拷贝宿主111文件到容器内部/usr文件夹下(注意要带上:号进行标示是容器文件夹,如果容器名称中含有冒号结尾又加上冒号,二个冒号会冲突,建议采用容器id)

4.安装mysql5.6

1.拉取镜像mysql指定版本
docker pull mysql:5.6

2.启动容器mysql
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456! -d mysql:5.6

3.进入容器 (后台式)
docker exec -it 容器id /bin/bash

操作流程如下图,建议采用后台启动式操作,这样不会停止容器

在这里插入图片描述

5.docker 开放端口的坑

docker 运行容器会绕过防火墙规则,开放外网端口,导致防火墙设置失败,最简单的解决方案,指定本地映射访问,不指定访问主机则为 0.0.0.0
例如 -p 127.0.0.1:8080:8080

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值