目录
前言
接上回
我们已经对docker进行完了基本配置,接下来就该熟悉docker的一些基础命令了。
一、基础命令
1.启动、重启、关闭docker服务
systemctl start docker #启动
systemctl restart docker #重启
systemctl stop docker #停止
2.设置开机启动、查看运行状态
systemctl enable docker #开机启动
systemctl status docker #查看运行状态
3.查看版本号
docker version
4.查看详细系统信息
如容器数量、容器启动状态、镜像数量等
docker info
二、镜像命令
1.镜像列表
查看自己已安装的镜像
docker images
2.搜索镜像
2.1.从镜像库中查找镜像
docker search 关键字
2.2.search条件过滤
使用filter进行条件的过滤,更精准的定位。
比如只搜索星数至少为5000的相关镜像。
docker search --filter stars=5000 mysql
2.3.筛选官方版本镜像
docker search --filter is-official=true mysql
3.拉取镜像
3.1.拉取最新版本镜像
docker pull 镜像名
3.2.拉取指定版本镜像
docker pull 镜像名:tag
比如需要拉取5.6版本的mysql则输入以下命令
docker pull mysql:5.6
注:软件对应的版本号可以在Docker Hub中进行查看,阿里源可在阿里云镜像站查看
4.保存镜像
docker save 镜像名 -o 保存路径/保存文件名
比如将mysql的镜像保存到opt目录下,文件名为mysql.tar
docker save mysql -o /opt/mysql.tar
保存完的文件可以在任何安装了docker的服务器内进行加载和使用。
5.加载镜像
docker load -i 文件保存位置
比如将mysql.tar压缩包导入服务器,放入home目录下,再使用上述命令进行镜像加载即可。
docker load -i /home/mysql.tar
6.删除镜像
6.1.删除单个镜像
docker rmi -f 镜像名:tag 或镜像ID
6.2.删除多个镜像
删除多个镜像,镜像名之间用空格隔开
docker rmi -f 镜像名1 镜像名2
6.3.删除所有镜像
删除所有镜像,-aq:参数a代表全部,参数q代表只显示ID
docker rmi -f $(docker images -aq)
7.镜像标签
在搭建测试环境中,常常会因为遇到需要频繁切换中间件或复现不同环境内出现的Bug的情况。针对快速搭建对应的测试环境,镜像标签就可以帮我们解决这一个问题。
docker tag 原镜像名:tag 新镜像名:tag
例如需要将5.6版本的mysql打上新的标签,我们可以输入以下命令
docker tag mysql:5.6 mysql:dev
基于以上的操作,我们可以进行快速的回滚并创建指定版本的容器。
三、容器命令
1.启动容器
docker run -itd --name=’name’ 镜像名:tag /bin/bash
参数i代表以交互模式启动,t代表为容器分配一个伪输入终端,d代表后台运行容器并返回ID,--name:容器别名
例如,我们要启动mysql并起名为mysql-5.6
docker run -d --name=mysql-5.6 mysql:5.6 /bin/bash
2.停止容器
docker stop 容器名/容器ID
名字和ID可以通过docker ps查看
3.重启容器
docker restart 容器id
4.查看容器
docker ps #查看已启动的容器
docker ps -a #查看所有容器
docker ps | grep mysql #根据关键字查看容器
5.进入容器内部
当我们需要对容器进行一些配置操作的时候,需要进到容器内部
参数i代表即使没有附加也保持STDIN 打开,参数t代表分配一个伪终端
docker exec -it 容器名/容器ID /bin/bash
或
docker exec -it 容器名/容器ID sh (通过sh启动的容器)
6.退出容器内部
直接在命令行执行:exit
7.拷贝容器内容
7.1.将容器内的文件拷贝至本机
docker cp 容器名/容器ID:容器内文件路径 目标路径
比如要将容器tomcat的BUILDING.txt文件拷贝至服务器home目录下
docker cp tomcat:usr/local/tomcat/BUILDING.txt /home
7.1.将本机的文件拷贝至容器内
docker cp 服务器文件路径 容器名或容器ID:容器内路径
比如将本机的config.ini复制到容器mysql的主目录中
docker cp config.ini mysql:/
8.删除容器
8.1.删除单个容器,参数f为强制删除
docker rm -f 容器名或容器ID
8.2.删除多个容器,容器之间用空格隔开
docker rm -f 容器名1或容器ID1 容器名2或容器ID2
8.3.删除全部容器,参数a指定全部,参数q只返回ID
docker rm -f $(docker ps -aq)
9.容器端口印射(指定端口启动)
在日常的使用过程中,容器的默认服务端口可能会被占用,此时我们就需要使用到端口印射来避开那些已经被使用了的端口。
我们在启动容器的同时,使用参数p来指定需要印射的服务端口即可。
docker run -itd -p 宿主机端口:容器服务端口 镜像名
比如我想启动tomcat的时候,8080端口已被其他服务占用,那就需要使用参数p将原有服务的8080端口印射程其他未被占用的端口。
docker run -itd --name tomcat01 -p 9999:8080 tomcat
在docker ps中查看时,可以发现tomcat的原有服务端口已经被印射成了指定的端口号。
10.存储挂载
当我们的容器需要进行一些持久化的业务时,或者为了防止服务器以外断电或其他硬件故障而导致的数据的丢失,我们就可以使用挂载操作将容器内的数据直接挂载至服务器的存储设备内。
同样的,在创建容器时我们可以使用参数v进行挂载操作。
docker run -itd -v 宿主机存储路径:容器内数据路径 镜像名
比如创建mysql容器的同时完成数据库数据的存储挂载
docker run -itd --name mysql01 -v /home/mysql/data:/var/lib/mysql mysql
11.查看容器进程信息
用于查看正在运行的容器的进程信息。当运行一个容器时,它实际上在容器内部启动了一个或多个进程,可以查看这些进程的状态;显示类似于在容器内部运行 ps
命令所得到的输出,显示容器的进程 ID、父进程 ID、CPU 利用率、内存利用率等信息。
注意:只有正在运行的容器才会显示进程信息。如果容器已经停止,
docker top
将不会返回任何输出。
docker top 容器id
12.查看镜像元数据
用于获取 Docker 容器或镜像的详细信息或元数据。这些信息以 JSON 格式返回,包含了关于容器或镜像的丰富配置和状态数据。
12.1.获取镜像/容器的元数据
docker inspect 容器id
12.2.获取容器日志路径
docker inspect --format='{{.LogPath}}' <container_id>
总结
本文介绍了 Docker 的基础使用,包括基础命令、镜像命令和容器命令。通过基础命令,我们可以管理 Docker 的运行环境和镜像库;通过镜像命令,我们可以构建、导入、导出和删除镜像;通过容器命令,我们可以创建、启动、停止和删除容器。掌握这些基础使用,可以更好地利用 Docker 实现应用程序的打包、迁移和运行,提高开发和部署的效率。