Linux【第四章】Docker基本命令讲解
2022/1/27 7:13:24
本文主要是介绍Linux【第四章】Docker基本命令讲解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
docker目录
- docker基本命令
- 1.查看docker版本
- 2.查看docker详细信息
- 3.查看docker帮助命令
- 4.启动docker
- 5.关闭docker
- 6.重启docker
- 7.自启动docker
- 8.查看docker运行状态
- docker镜像命令
- 1.查看当前镜像
- 2.搜索镜像
- 3.拉取镜像文件
- 4.运行镜像文件
- 5.删除镜像文件
- 6.保存镜像文件
- 7.加载镜像文件tar
- docker容器命令
- 1.查看当前运行容器列表
- 2.查看所有容器 -----包含正在运行 和已停止的
- 3.运行一个容器
- 4.容器端口映射
- 5.进入容器
- 6.退出容器
- 7.停止容器
- 8.重启容器
- 9.kill容器
docker基本命令
本文为转载 : 原文地址
1.查看docker版本
docker version
2.查看docker详细信息
docker info
3.查看docker帮助命令
docker help
如果忘记某一个命令的具体参数如何使用,就在后面接–help
- 举例
查询ps的参数如何使用
docker ps --help
4.启动docker
systemctl start docker
5.关闭docker
systemctl stop docker
6.重启docker
systemctl restart docker
7.自启动docker
systemctl enable docker
8.查看docker运行状态
有绿色说明当前正在运行中
systemctl status docker
docker镜像命令
1.查看当前镜像
docker images
2.搜索镜像
参数说明:
根据提供参数过滤查询结果
-f , --filter filter Filter output based on conditions provided
# 搜索命令 docker search 镜像名 # 比如搜索jenkins docker search jenkins # 比如搜索jenkins下载数量超过5000的镜像文件 docker search -f
- 搜索jenkins镜像文件
- 搜索start超过5000的jenkins镜像文件
3.拉取镜像文件
不加tag(版本号) 即拉取docker仓库中 该镜像的最新版本latest 加:tag 则是拉取指定版本
docker pull 镜像名 # 拉去MySQL docker pull mysql
- 拉取mysql,需要注意的是,如果不加镜像的版本信息,则默认拉取的是最新版本
- 查看新增的mysql镜像文件
我们来拉取一个带版本信息的镜像文件试试就知道了
docker官方镜像搜索
官方网址
版本信息
- 拉取mysql镜像并且版本为5.7.37
docker pull mysql:5.7.37
4.运行镜像文件
# 拉取tomcat镜像 docker pull tomcat # 不进行任何操作直接启动tomcat docker run tomcat
启动tomcat镜像之后会发现,光标消失了而且什么操作都不能做,这个使用可以用 ctrl+c
跳出(注:此方式虽然可以退出容器,此命令是错误的,详细请见下文的容器命令
)
5.删除镜像文件
前提条件是当前的镜像文件没有被任何容器使用,就好比房子里面有人,你直接开挖土机拆迁那肯定是不行的
#删除单个镜像文件 docker rmi -f 镜像名/镜像id # 删除最新的mysql镜像文件 docker rmi -f 5b4c624c7fe1 # 下面的可以自己试试 #删除多个 其镜像ID或镜像用用空格隔开即可 docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID #删除全部镜像 -a 意思为显示全部, -q 意思为只显示ID docker rmi -f $(docker images -aq)
- 强制删除镜像文件
docker images rm 镜像名/镜像ID
镜像的基础命令就到这里 下方会使用更复杂的 docker run 命令 来根据镜像启动容器
6.保存镜像文件
将我们的镜像 保存为tar 压缩文件 这样方便镜像转移和保存 ,然后可以在任何一台安装了docker的服务器上 加载这个镜像
语法:
docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字 # 备份我们的jenkins镜像 docker save 55860ee0cd73 -o /tmp/jenkinsbeifen.tar
- 备份jenkins
- 查看备份文件
7.加载镜像文件tar
加载从其他地方移植过来的镜像文件
语法
docker load -i 镜像保存文件位置 # 加载jenkins容器 docker load -i /tmp/jenkinsbeifen.tar
- 加载容器
docker容器命令
1.查看当前运行容器列表
docker ps
2.查看所有容器 -----包含正在运行 和已停止的
docker ps -a
3.运行一个容器
语法
# -it 表示 与容器进行交互式启动 -d 表示可后台运行容器 (守护式运行) # --name 给要运行的容器 起的名字 /bin/bash 交互路径 docker run -it -d --name 要取的别名 镜像名:Tag /bin/bash
我们拿redis举例,拉去并运行redis容器
- 创建并运行容器
#1. 拉取redis 镜像 docker pull redis:5.0.5 #2.命令启动 docker run -it -d --name redis001 redis:5.0.5 /bin/bash
- 查看容器
这个时候我们看到了
redis 使用了6379 端口 那么我们在关闭防火墙或开启了安全组的情况下 是否可以进行访问呢?
# netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息 netstat -untlp
- 查看端口,并没有发现6379
赶紧使用 redis desktop manger 连接测试一下
为什么不行呢 已经确定了 docker 中 redis 容器已经是在运行中 且占有端口 6379啊?
因为:占用的6379端口 仅仅是在容器中内部本身的端口,与宿主机的6379端口并无联系,我们通过宿主机Ip:6379访问此redis示例,那自然是找不到的哟!
默认情况下,我们是无法通过宿主机(安装docker的服务器)端口来直接访问容器的 ,因为docker容器自己开辟空间的端口与宿主机端口没有联系…
如果外部想要访问容器,那必须得让容器中的端口与宿主机的端口建立联系绑定起来,这个正式的概念叫做容器端口映射
有了端口映射,我们就可以将宿主机端口与 容器端口绑定起来,比如 我们建立宿主机的 6379端口
与容器redis 6379端口
绑定起来,那么再访问宿主机 Ip:6379
就可以访问到对应容器了!
4.容器端口映射
接下来 进行 容器端口映射演示
首先停止容器
docke stop 容器id/容器名 # 停止redis docker stop redis001
然后删除容器
# 删除容器 docker rm -f fb4e089b9a67
端口映射语法
-p 宿主机端口:容器端口
还是使用前方的 redis 镜像 尝试 将 6379端口 映射到服务器的8888 如果成功了的话 那么咱们访问服务器的8888端口就会访问到咱们的 docker 中 的容器 redis002
-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这个端口了!!!
5.进入容器
方式一:
# 语法 docker exec -it 容器名/容器ID /bin/bash #进入 前面的 redis001容器 docker exec -it redis001 /bin/bash
- 进入容器
方式二:
docker attach 容器名/容器ID # 进入redis docker attach redis001
- 进入容器
6.退出容器
#-----直接退出 未添加 -d(持久化运行容器) 时 执行此参数 容器会被关闭 exit # 优雅提出 --- 无论是否添加-d 参数 执行此命令容器都不会被关闭 Ctrl + p + q
- 直接退出
- 优雅退出
7.停止容器
docker stop 容器ID/容器名 # 停止redis001 docker stop redis001
8.重启容器
docker restart 容器ID/容器名 # 重启redis001 docker restart redis001
9.kill容器
docker kill 容器名/容器id # 杀掉redis002容器 docker kill redis002
这篇关于Linux【第四章】Docker基本命令讲解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14Docker端口:你真的公开了哪些东西?
- 2024-11-14用DOCKER在家里的实验室里搞些酷炫的玩意儿
- 2024-11-05掌握Docker:高效安全的十大最佳实践
- 2024-11-05在 Docker Compose 中怎么设置端口映射-icode9专业技术文章分享
- 2024-11-05在 Docker Compose 中怎么设置环境变量-icode9专业技术文章分享
- 2024-11-04Docker环境部署项目实战:新手入门教程
- 2024-11-04Docker环境部署资料:新手入门教程
- 2024-11-01Docker环境部署教程:新手入门指南
- 2024-11-01超越Docker:苹果芯片上的模拟、编排和虚拟化方案讲解
- 2024-11-01Docker环境部署:新手入门教程