当前位置: 首页 > ai >正文

Docker(二):docker常用命令

一、帮助命令

1、docker 帮助命令

命令说明
docker version / docker -v查看docker的版本信息
docker info查看docker详细信息
docker --help / docker -h查看docker帮助命令,可以查看到相关的其他命令

二、Docker镜像命令

1、docker pull

      从远程仓库docker hub 上拉取镜像

      命令格式:

            docker pull imageName<:version>

            imageName -- 要拉取的镜像名称

            :version -- 拉取镜像的版本号,可选项;

            docker pull 拉取镜像时若不加版本号,则表示拉取最新版本的镜像,

             如:执行命令 docker pull mysql:5.7  和 docker pull mysql

                    

                    

                    

2、docker images

     列出本地主机上所有的镜像,参数说明:

参数说明
-a列出本地所有的镜像
-q只显示镜像ID
--digests显示镜像的摘要信息
--no-trunc显示完整的镜像信息

     如下图所示:

            

            镜像信息说明:      

选项说明
REPOSITORY表示镜像的仓库源
TAG镜像的标签
IMAGE ID镜像ID
CREATED镜像创建时间
SIZE镜像大小

3、docker rmi 

     docker rmi 用于删除镜像文件,命令格式如下:

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

     -f : 表示强制删除,一般若镜像文件已经容器,则需要加上参数 -f 强制删除。

          注意:若容器已经在运行中,则需先执行命令 “docker stop  容器ID” 先停止

                     容器,然后再删除,注意:此时对应的容器并没有被删除

         如下图所示:

          

三、Docker 容器命令

1、docker ps

      docker ps 用于查看本地正在运行的容器

命令说明
docker ps查看本地正在运行的容器
docker ps -a查看本地正所有的容器,包括停止的和正在运行的
docker ps -all查看本地正所有的容器,包括停止的和正在运行的
docker ps --all查看本地正所有的容器,包括停止的和正在运行的
docker ps --qa查看本地正所有容器的容器ID

      如下图所示:

             

2、docker run

      docker run 是最重要的一个命令,主要用于创建并运行一个容器;

      命令如下:

           docker run [OPTIONS] IMAGE:TAG

      OPTIONS 中的一些参数说明: 

options说明
--name"容器新名字": 为容器指定一个名称
-d后台运行容器,并返回容器ID,也即启动守护式容器
-i以交互模式运行容器,通常与 -t 同时使用
-t为容器重新分配一个伪输入终端,通常与 -i 同时使用
-P:随机端口映射
-p

指定端口映射,有以下四种格式

ip:hostPort:containerPort

ip::containerPort

hostPort:containerPort

containerPort

 

      下边以在docker中安装Mysql7为例来看下 docker run 命令的用法;

2.1、查看mysql7镜像文件是否存在,若不存在则执行 docker pull mysql:5.7拉取 mysql5.7 的镜像

         

2.2、在指定目录下(如 /root/docker)创建目录 mysql/mysql、mysql/conf、mysql/log,分别用于

         存放Docker中mysql7容器的运行数据、配置文件、日志;并在 conf 目录下创建mysql的配置

         文件 my.cnf,在mysql7容器创建的时候将 这些 文件或目录映射到容器的指定目录;

         如下图所示:

                

                

       2)编辑配置文件my.cnf,配置mysql,内容如下:

[mysqld]
pid-file	= /var/run/mysqld/mysqld.pid
socket		= /var/run/mysqld/mysqld.sock
datadir		= /var/lib/mysql
#log-error	= /var/log/mysql/error.log
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0max_connections = 2000
max_user_connections = 1900
max_connect_errors = 100000
max_allowed_packet = 50M
lower_case_table_names=1
[mysqld]
skip-name-resolve
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

2.3、执行docker run 创建并启动mysql 容器

         命令:

docker run  -p 3306:3306 --name mysql5.7 -v /root/docker/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /root/docker/mysql/log:/logs -v /root/docker/mysql/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

         命令解析:

                docker run  : 运行容器-p 本机port : docker容器port  端口映射

                --name  容器名称,如:--name mysql5.7;

                -v 本机文件路径 : docker文件路径  -- > 用于将本地文件挂载到docker容器指定文件;

                MYSQL_ROOT_PASSWORD : 设置MySQL的root 用户的初始密码密码,

                     如:MYSQL_ROOT_PASSWORD=123456;

                -d :后台运行容器,并返回容器ID;

               mysql : 镜像名称,表示运行mysql 镜像,一般写在最后

3、docker exec 命令

     docker exec 进入容器并在容器中打开新的终端,可以在容器的终端中执行命令,并将

     命令执行结果输出到当前的终端中,

     命令格式:

              docker exec -it 容器名称或容器ID [需要执行的命令]

     如:以上边容器 mysql5.7 为例来进入容器中的mysql bash,并设置 mysql 权限,使之可以远

            程访问,

           1)执行命令:docker exec -it mysql5.7 bash 进入容器mysql5.7中

                 

           2)执行命令 mysql -uroot -p 启动mysql5.7的客户端,输出上边设置的密码“123456” 后

                 进入mysql 客户端

                 

                 在mysql 客户端中执行如下命令用来设置mysql 的远程连接,如下所示: 

//授权mysql 的root 用户可以远程连接
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' with grant option;//刷新权限
flush privileges;//更改加密规则,并设置docker中的mysql 本地登录密码为 123456
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER; //设置root远程连接密码为123456:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';//刷新权限
flush privileges;

                 

              3)使用 Navicat 测试,数据库远程连接是否成功

                     

4、exit 命令

      exit 用于退出容器终端

             

5、docker stop  

      docker stop 用来关闭(停止)正在运行的容器;

      命令格式:docker stop  容器id或容器名称

       如执行命令  docker stop redis  来关闭名称是 redis 的容器,如下图所示:

                

6、docker start

     docker start 用于启动容器

     命令格式:docker start 容器ID或者容器名称

     如:执行命令 docker start redis 启动上边停止的容器 redis,如下图所示:

             

7、docker restart

     docker restart 用来重启指定容器

     命令格式:docker restart 容器id或者名称

     如:执行命令 docker restart redis 来重启 redis容器,如下图所示:

            

8、docker kill

      docker kill 用来强制停止指定容器

      命令格式:docker kill 容器ID或者名称

      如:执行命令 docker kill redis 来强制停止容器 redis,如下图所示:

              

9、docker rm 

     docker rm  用于删除指定容器,

     注意:正在运行中的容器不能删除,运行中的容器需要先停止再删除

     命令格式:

                    docker rm 容器ID或者名称;

                    docker rm -f  容器ID或者名称;  -f 表示强制删除指定容器

       如:执行命令 docker rm redis-6379 来删除容器 redis-6379,如下图所示:

               

           

            

http://www.xdnf.cn/news/2289.html

相关文章:

  • 概率论与统计(不确定性分析)主要应用在什么方面?涉及到具体知识是什么?
  • 如何识别DDoS攻击类型及有效防护?一篇简明指南
  • Git Bash 下使用 SSH 连接出现 “Software caused connection abort” 问题
  • Macos m系列芯片环境下python3安装mysqlclient系列问题
  • 数据需求管理办法有哪些?具体应如何应用?
  • 图神经网络(GNN)基本概念与核心原理
  • 某化工厂运维升级:智和信通运维平台实现工业交换机智能管理
  • Maven 4.0.0 模式-pom.xml配置详解
  • 《AI大模型应知应会100篇》第37篇:Agent框架入门:让AI具备自主行动能力
  • 数字巴别塔:全栈多模态开发框架如何用自然语言重构软件生产关系?
  • Unity 和 Unreal Engine(UE) 两大主流游戏引擎的核心使用方法
  • 回顾|Apache Cloudberry™ (Incubating) Meetup·2025 杭州站
  • MyBatis 类型处理器(TypeHandler)注册与映射机制:JsonListTypeHandler和JsonListTypeHandler注册时机
  • 174页Deepseek大模型在银行系统的部署方案
  • 一、I/O的相关概念
  • Spark RDD行动算子与共享变量实战:从数据聚合到分布式通信
  • 基于SpringBoot+PostgreSQL+ROS Java库机器人数据可视化管理系统
  • 热红外遥感在火情监测中有什么作用?
  • 深入Java JVM常见问题及解决方案
  • Java位运算符大全
  • 亚组风险比分析与可视化
  • OceanBase单机重启和配置修改
  • 再学GPIO(一)
  • 汽车制造行业如何在数字化转型中抓住机遇?
  • springboot不连接数据库启动(原先连接了mysql数据库)
  • 【Redis】Redis Zset实现原理:跳表+哈希表的精妙设计
  • C++初阶-STL简介
  • 怎样给MP3音频重命名?是时候管理下电脑中的音频文件名了
  • FlinkUpsertKafka深度解析
  • 重温TCP通信过程