docker的常用命令

目录

Linux操作系统下的命令

查看docker 运行状态

查看docker 版本号信息

如果忘了可以使用 docker --help进行命令查看

搜索镜像

运行镜像

删除镜像

保存镜像

加载镜像

镜像标签

容器相关的命令

查看正在运行容器列表

运行一个容器

停止容器

删除容器

容器端口与宿主机端口映射

进入容器方式一

进入容器方式二

停止容器

重启容器

容器文件拷贝

查看容器日志

docker文件分层与数据卷挂载

更换容器名

提交一个镜像

说明案例:

查看docker工作目录

查看docker磁盘占用总体情况

查看Docker的磁盘使用具体情况

删除 无用的容器和 镜像

清除所有无容器使用的镜像

查找大文件

如何查看容器的挂载目录

docker查看日志的几个方式:

Macos下的docker命令使用

删除所有镜像

# 启动所有镜像

# stop停止所有容器

# remove删除所有容器

命令列表


理解 docker中的镜像 就像是咱们java 中的Class ,而容器呢 是基于这个镜像构建出的实例 类似于咱java 中 根据Class构造出的一个个实例对象

Linux操作系统下的命令

启动docker

systemctl start docker

关闭docker

systemctl stop docker

重启docker

systemctl restart docker

docker设置随服务启动而自启动

systemctl enable docker

查看docker 运行状态

------如果是在运行中 输入命令后 会看到绿色的active

systemctl status docker

查看docker 版本号信息

docker version

docker info

docker 帮助命令

如果忘了可以使用 docker --help进行命令查看

指定命令后,但忘了具体参数的使用,比如拉取时:可以docker pull --help查看具体参数的使用

查看自己服务器中docker 镜像列表

docker images

搜索镜像

docker search 镜像名

docker search --filter=STARS=9000 mysql 搜索 STARS >9000的 mysql 镜像

拉取镜像 不加tag(版本号) 即拉取docker仓库中 该镜像的最新版本latest 加:tag 则是拉取指定版本

docker pull 镜像名

docker pull 镜像名:tag

运行镜像

docker run 镜像名

docker run 镜像名:Tag

删除镜像

#删除一个

docker rmi -f 镜像名/镜像ID

#删除多个 其镜像ID或镜像用用空格隔开即可

docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID

#删除全部镜像  -a 意思为显示全部, -q 意思为只显示ID

docker rmi -f $(docker images -aq)

强制删除镜像

docker image rm 镜像名称/镜像ID

保存镜像

将我们的镜像 保存为tar 压缩文件 这样方便镜像转移和保存 ,然后 可以在任何一台安装了docker的服务器上 加载这个镜像

命令:

docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字

比如:

docker save tomcat -o /myimg.tar

加载镜像

任何装 docker 的地方加载镜像保存文件,使其恢复为一个镜像

docker load -i 镜像保存文件位置

镜像标签

有的时候呢,我们需要对一个镜像进行分类或者版本迭代操作,比如我们一个微服务已经打为docker镜像,但是想根据环境进行区分为develop环境与alpha环境,这个时候呢,我们就可以使用Tag,来进对镜像做一个标签添加,从而行进区分;版本迭代逻辑也是一样,根据不同的tag进行区分

app:1.0.0 基础镜像

# 分离为开发环境

app:develop-1.0.0  

# 分离为alpha环境

app:alpha-1.0.0 

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

docker tag 源镜像名:TAG 想要生成新的镜像名:新的TAG

# 如果省略TAG 则会为镜像默认打上latest TAG

docker tag aaa bbb

# 上方操作等于 docker tag aaa:latest bbb:test

示例:

# 我们根据镜像 quay.io/minio/minio 添加一个新的镜像 名为 aaa 标签Tag设置为1.2.3

docker tag quay.io/minio/minio:1.2.3 aaa:1.2.3

# 我们根据镜像 app-user:1.0.0 添加一个新的镜像 名为 app-user 标签Tag设置为alpha-1.0.0

docker tag app-user:1.0.0 app-user:alpha-1.0.0

容器相关的命令

查看正在运行容器列表

docker ps

查看所有容器 -----包含正在运行 和已停止的

docker ps -a

容器怎么来呢 可以通过run 镜像 来构建 自己的容器实例

运行一个容器

# -it 表示 与容器进行交互式启动 -d 表示可后台运行容器 (守护式运行)  --name 给要运行的容器 起的名字  /bin/bash  交互路径

docker run -it -d --name 要取的别名 镜像名:Tag /bin/bash

例如我们要启动一个redis 把它的别名取为redis001 并交互式运行 需要的命令 —我这里指定版本号为5.0.5

#1. 拉取redis 镜像

docker pull redis:5.0.5

#2.命令启动

docker run -it -d --name redis001 redis:5.0.5 /bin/bash

linux命令

# netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息

netstat -untlp

停止容器

# 先停止咱之前运行的 redis 容器

docker stop 容器名/容器ID

删除容器

#删除一个容器

docker rm -f 容器名/容器ID

#删除多个容器 空格隔开要删除的容器名或容器ID

docker rm -f 容器名/容器ID 容器名/容器ID 容器名/容器ID

#删除全部容器

docker rm -f $(docker ps -aq)

容器端口与宿主机端口映射

-p 宿主机端口:容器端口

-p 8888:6379 解析 将容器内部的 6379端口与docker 宿主机(docker装在哪台服务器 哪台服务器就是宿主机)8888 端口进行映射 那通过外部访问宿主机8888端口 即可访问到 docker 容器 6379 端口了

docker run -itd --name redis002 -p 8888:6379 redis:5.0.5 /bin/bash

虽说每个容器之间,环境都是隔离的,但是宿主机每个端口都是一个,8888端口被redis002容器绑定了,那么其他所有的容器都不可以使用8888这个端口了!!!

进入容器方式一

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

#进入 前面的 redis001容器  

docker exec -it redis001 /bin/bash

进入容器方式二

docker attach 容器名/容器ID

从容器内 退出到自己服务器中 需注意 两个退出命令的区别

#-----直接退出  未添加 -d(持久化运行容器) 时 执行此参数 容器会被关闭 

exit

# 优雅退出 --- 无论是否添加-d 参数 执行此命令容器都不会被关闭

Ctrl + p + q

停止容器

docker stop 容器ID/容器名

重启容器

docker restart 容器ID/容器名

启动容器

docker start 容器ID/容器名

kill 容器

docker kill 容器ID/容器名

容器文件拷贝

#docker cp 容器ID/名称:文件路径  要拷贝到外部的路径   |     要拷贝到外部的路径  容器ID/名称:文件路径

#从容器内 拷出

docker cp 容器ID/名称: 容器内路径  容器外路径

#从外部 拷贝文件到容器内

docker  cp 容器外路径 容器ID/名称: 容器内路径

查看容器日志

docker logs -f --tail=要查看末尾多少行 默认all 容器ID

启动容器时,使用docker run命令时 添加参数--restart=always 便表示,该容器随docker服务启动而自动启动

示例:

docker run -itd --name redis002 -p 8888:6379 --restart=always  redis:5.0.5 /bin/bash

docker文件分层与数据卷挂载

简单来讲,就是将容器内的数据与外部宿主机文件绑定起来,类似一个双持久化,当容器删除时,宿主机文件数据目录仍在,下次启动容器只要将数据目录指向宿主机数据所在位置即可恢复!

-v 宿主机文件存储位置:容器内文件位置

-v 宿主机文件存储位置:容器内文件位置 -v 宿主机文件存储位置:容器内文件位置 -v 宿主机文件存储位置:容器内文件位置

示例:

# 运行一个docker redis 容器 进行 端口映射 两个数据卷挂载 设置开机自启动

docker run -d -p 6379:6379 --name redis505 --restart=always  -v /var/lib/redis/data/:/data -v /var/lib/redis/conf/:/usr/local/etc/redis/redis.conf  redis:5.0.5 --requirepass "password"

方法二:不想删容器,又想让这个容器设置开机自启动,那么我们修改其启动配置即可!

docker  update --restart=always 容器Id 或者 容器名

docker container update --restart=always 容器Id 或者 容器名

更换容器名

docker rename 容器ID/容器名 新容器名

提交一个镜像

我们运行的容器可能在镜像的基础上做了一些修改,有时候我们希望保存起来,封装成一个更新的镜像,这时候我们就需要使用 commit 命令来构建一个新的镜像

docker commit -m="提交信息" -a="作者信息" 容器名/容器ID 提交后的镜像名:Tag

我们拉取一个tomcat镜像 并持久化运行 且设置与宿主机进行端口映射

docker pull tomcat

docker run -itd -p8080:8080 --name tom tomcat /bin/bash

说明案例:

从镜像源中拉取一个tomcat镜像并运行构造容器

1.访问 咱的端口 发现访问404 这是因为咱配置了阿里云镜像后 所拉取得镜像都是最基础班的 仅仅包含其容器必要数据 例如 容器中 vim vi ll 命令都没有,在浏览器访问对应端口号,显示为404

2.咱们的webapps 下一个文件都没有 ,访问肯定404罗

不断查看 发现咱 webapps.dist 下是有文件的 我们把它拷贝的webapps 下 然后打包成一个新的镜像 后 访问查看是否进入到首页

3。退出容器,将刚才重新复制文件到webapps的容器打包,使用 提交命令 将在运行的tomcat 容器 打包为一个全新的镜像 名字为tom Tag为1.0

docker commit -a="leilei" -m="第一次打包镜像,打包后直接访问还会404吗" 231f2eae6896 tom:1.0

4.删除之前的tomcat镜像与容器,运行咱自己打包的镜像 tom:1.0,设置容器名字为lei 映射端口为6500:8080

docker run -d -it  -p6500:8080 --name lei tom:1.0 /bin/bash

运行并查看浏览器可以了

查看docker工作目录

sudo docker info | grep "Docker Root Dir"

查看docker磁盘占用总体情况

du -hs /var/lib/docker/

查看Docker的磁盘使用具体情况

docker system df

删除 无用的容器和 镜像

#  删除异常停止的容器

docker rm `docker ps -a | grep Exited | awk '{print $1}'` 

#  删除名称或标签为none的镜像

docker rmi -f  `docker images | grep '<none>' | awk '{print $3}'`

清除所有无容器使用的镜像

注意,此命令只要是镜像无容器使用(容器正常运行)都会被删除,包括容器临时停止

docker system prune -a

查找大文件

find / -type f -size +100M -print0 | xargs -0 du -h | sort -nr

查找指定docker使用目录下大于指定大小文件

find / -type f -size +100M -print0 | xargs -0 du -h | sort -nr |grep '/var/lib/docker/overlay2/*'

如何查看容器的挂载目录

docker inspect container_name | grep Mounts -A 20

docker inspect container_id | grep Mounts -A 20

docker查看日志的几个方式:

(1)docker logs --tail=1000 容器名称 (查看容器前多少行的日志)(推荐)

(2)docker 容器启动后,可以进入以下位置查看日志(/var/lib/docker/containers/容器ID/容器ID-json.log)(进入容器内部查看日志)

(3)#查看compose所有容器的运行日志

docker-compose -f docker-compose-app.yml logs -f

(4)#查看compose下某个容器的运行日志

docker-compose -f docker-compose-app. yml logs -f<服务名>

(5)# 也可以把compose的容器日志输出到日志文件里去,然后用tail -f随时查看

docker-compose -f docker-compose-app. yml logs -f >> myDockerCompose.log &

Macos下的docker命令使用

删除所有镜像

docker rmi $(docker images -q)

Docker的一系列安装

# 启动所有镜像

docker start $(docker ps -a -q)

# stop停止所有容器

docker stop $(docker ps -a -q)

# remove删除所有容器

docker rm $(docker ps -a -q)

命令列表

docker run -i -t <image_name/continar_id> /bin/bash 启动容器并启动bash(交互方式)

docker run -d -it image_name 启动容器以后台方式运行(更通用的方式)

docker ps 列出当前所有正在运行的container

docker ps -a 列出所有的container

docker ps -l 列出最近一次启动的container

docker images 列出本地所有的镜像

docker rmi imagesID 删除指定的镜像id

docker rm CONTAINER ID 删除指定的CONTAINER id

docker diff 镜像名 查看容器的修改部分

docker kill CONTAINER ID 杀掉正在运行的容器

docker logs 容器ID/name 可以查看到容器主程序的输出

docker pull image_name 下载image

docker push image_name 发布docker镜像

docker version 查看docker版本

docker info 查看docker系统的信息

docker inspect 容器的id 可以查看更详细的关于某一个容器的信息

docker run -d image-name 后台运行镜像

docker search 镜像名 查找公共的可用镜像

docker stop 容器名/容器 ID 终止运行的容器

docker restart 容器名/容器 ID 重启容器

docker commit 提交,创建个新镜像

docker build [OPTIONS] PATH | URL | - 利用 Dockerfile 创建新镜像

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值