docker使用手册(3)—— 基础使用

举报
Austin_zhai 发表于 2022/08/16 10:20:20 2022/08/16
【摘要】 目的CI / CD在目前各类互联网企业中已然成为推动软件开发行为的重要基础设施服务。同样的对于测试团队来说更是有着举足轻重的重大意义,无论是测试左移的具象化提现亦或是持续测试的顺利开展,掌握这一技能已是广大软件测试工程师的必修课。分享这一技术笔记也是希望除了自己团队以外的广大测试同学们可以有体系的学习这一技能。 接上回我们已经对docker进行完了基本配置,接下来就该熟悉docker的一些...

目的

CI / CD在目前各类互联网企业中已然成为推动软件开发行为的重要基础设施服务。同样的对于测试团队来说更是有着举足轻重的重大意义,无论是测试左移的具象化提现亦或是持续测试的顺利开展,掌握这一技能已是广大软件测试工程师的必修课。分享这一技术笔记也是希望除了自己团队以外的广大测试同学们可以有体系的学习这一技能。



接上回

我们已经对docker进行完了基本配置,接下来就该熟悉docker的一些基础命令了。



基础命令

启动、重启、关闭docker服务

systemctl start docker
systemctl restart docker
systemctl stop docker

设置开机启动

systemctl enable docker

查看服务运行状态

systemctl status docker

查看版本号

docker version

查看详细系统信息,比如容器数量、镜像等

docker info



镜像命令

查看自己的镜像列表

docker images

在这里插入图片描述

搜索docker hub中的镜像

docker search 关键字

比如搜索MariaDB
在这里插入图片描述


另外可以使用filter进行条件的过滤,以确保更精准的定位。
比如只搜索星数至少为5的相关镜像。

docker search --filter stars=5 mariadb

在这里插入图片描述


筛选出官方版本的mariadb

docker search --filter "is-official=true" mariadb

在这里插入图片描述


拉取最新版镜像

docker pull 镜像名

如果需要指定版本号则可以加tag

docker pull 镜像名:tag

比如需要拉取5.6版本的mysql则输入以下命令

docker pull mysql:5.6

注:软件对应的版本号可以在Docker Hub中进行查看

以下画面就说明镜像已经拉取成功了
在这里插入图片描述


保存镜像

docker save 镜像名 -o 保存路径/保存文件名

比如将mysql的镜像保存到opt目录下,文件名为mysql.tar

docker save mysql -o /opt/mysql.tar

保存完的文件可以在任何安装了docker的服务器内进行加载和使用。


加载镜像

docker load -i 文件保存位置

比如将其他机器内保存的mysql.tar压缩包导入服务器,放入home目录下,再使用上述命令进行镜像加载即可。

docker load -i /home/mysql.tar

删除镜像

删除单个镜像,参数f为强制删除

docker rmi -f 镜像名或镜像ID

删除多个镜像,镜像名之间用空格隔开

docker rmi -f 镜像名1 镜像名2

删除所有镜像,参数a代表全部,参数q代表只显示ID

docker rmi -f $(docker images -aq)

镜像标签
在搭建测试环境中,常常会因为遇到需要频繁切换中间件或复现不同环境内出现的Bug的情况。针对快速搭建对应的测试环境,镜像标签就可以帮我们解决这一个问题。

docker tag 原镜像名:tag 新镜像名:tag

例如需要将5.6版本的mysql打上新的标签,我们可以输入以下命令

docker tag mysql:5.6 mysql:dev

以此类推,将dev的mysql打上新的标签也是如此

docker tag mysql:dev mysql:uat

再使用docker images进行查看
在这里插入图片描述

基于以上的操作,我们可以进行快速的回滚并创建指定版本的容器。

docker run -itd mysql:uat



容器命令

启动容器

参数i代表以交互模式启动,t代表为容器分配一个伪输入终端,d代表后台运行容器并返回ID

docker run -itd 镜像名:tag

如果需要给容器起个别名,那我们启动时可以输入

docker run -itd --name 别名 镜像名:tag

例如,我们要启动tomcat并起名为tomcat-test

docker run -itd --name tomcat-test tomcat

查看已运行容器

docker ps

在这里插入图片描述

查看所有容器(启动和已停止的)

docker ps -a

在这里插入图片描述


停止容器

docker stop 容器名或容器ID

名字和ID可以通过docker ps查看

docker stop tomcat-test

拷贝容器

将容器内的文件拷贝至本机

docker cp 容器名或容器ID:原路径 目标路径

比如要将原路径的tomcat的BUILDING.txt拷贝至home目录下

docker cp tomcat:usr/local/tomcat/BUILDING.txt /home

将本机的文件拷贝至容器内

docker cp 原路径 容器名或容器ID:目标路径

比如将本机的config.ini复制到tomcat的主目录中

docker cp config.ini tomcat:/

删除容器

删除单个容器,参数f为强制删除

docker rm -f 容器名或容器ID

删除多个容器,容器之间用空格隔开

docker rm -f 容器名1或容器ID1 容器名2或容器ID2

删除全部容器,参数a指定全部,参数q只返回ID

docker rm -f $(docker ps -aq)

容器端口印射
在日常的使用过程中,容器的默认服务端口可能会被占用,此时我们就需要使用到端口印射来避开那些已经被使用了的端口。
我们在启动容器的同时,使用参数p来指定需要印射的服务端口即可。

docker run -itd -p 宿主机端口:容器服务端口 镜像名

比如我想启动tomcat的时候,8080端口已被其他服务占用,那就需要使用参数p将原有服务的8080端口印射程其他未被占用的端口。

docker run -itd --name tomcat01 -p 9999:8080 tomcat

docker ps中查看时,可以发现tomcat的原有服务端口已经被印射成了指定的端口号。
在这里插入图片描述


存储挂载
当我们的容器需要进行一些持久化的业务时,或者为了防止服务器以外断电或其他硬件故障而导致的数据的丢失,我们就可以使用挂载操作将容器内的数据直接挂载至服务器的存储设备内。
同样的,在创建容器时我们可以使用参数v进行挂载操作。

docker run -itd -v 宿主机存储路径:容器内数据路径 镜像名

比如创建mysql容器的同时完成数据库数据的存储挂载

docker run -itd --name mysql01 -v /home/mysql/data:/var/lib/mysql mysql

进入容器
当我们要对容器进行一些配置操作的时候,就需要进到容器内部。
参数i代表即使没有附加也保持STDIN 打开,参数t代表分配一个伪终端

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

例如进入名为tomcat01的容器内,则可以输入以下命令

docker exec -it tomcat01 /bin/bash

输入完查看所处位置已经跳转至tomcat容器内部
在这里插入图片描述


退出容器

exit
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。