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,内容如下:

bash 复制代码
[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=0


max_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 容器

命令:

cpp 复制代码
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 的远程连接,如下所示:

cpp 复制代码
//授权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,如下图所示:

相关推荐
mask哥1 小时前
详解最新链路追踪skywalking框架介绍、架构、环境本地部署&配置、整合微服务springcloudalibaba 、日志收集、自定义链路追踪、告警等
java·spring cloud·架构·gateway·springboot·skywalking·链路追踪
会游泳的石头3 小时前
Spring Cloud Gateway 如何将请求分发到各个服务
spring cloud
晓柏3 小时前
Docker 部署 ELK 日志收集系统
docker
启明真纳5 小时前
统信操作系统使用默认yum源安装 Docker 的踩坑
运维·docker·容器
lee_yanyi5 小时前
《一键式江湖:Docker Compose中间件部署108式》开篇:告别“配置地狱”,从此笑傲云原生武林!》
docker·云原生·中间件
weisian1516 小时前
云原生--核心组件-容器篇-1-Docker和云原生关系(Docker是云原生的基石)
docker·云原生·容器
David爱编程6 小时前
Service 与 Headless Service 全面对比与实战指南
docker·容器·kubernetes
巨懵7 小时前
不使用dockerfile的方式制作一个Ubuntu20.04的镜像
docker
DavidSoCool9 小时前
k8s生成StarRocks集群模版
云原生·容器·kubernetes