docker相关命令

####### 帮助启动类命令 ##########

启动docker

systemctl start docker

停止docker

systemctl stop docker

重启docker

systemctl restart docker

查看docker状态

systemctl status docker

开机启动

systemctl enable docker

查看docker概要信息

docker info

查看docker总体帮助文档

docker --help

查看docker命令帮助文档

docker 具体命令 --help

####################################

######### 镜像命令 ################

####################################

列出本地主机上的镜像

docker images

REPOSITORY(镜像的仓库源) TAG(镜像的标签版本号) IMAGE ID(镜像ID) CREATED(镜像创建时间) SIZE(镜像大小)

同一个仓库源可以有多个TAG版本,代表这个仓库员的不同个版本,使用REPOSITORY:TAG来定义不同的镜像。如果不指定镜像的版本标签,默认使用latest镜像。

-a:列出本地所有的镜像(包含历史映像层)

-q:只显示镜像id

查找镜像

docker search [OPTIONS] 镜像名称

NAME(镜像名称) DESCRIPTION(镜像说明) STARS(点赞数量) OFFICIAL(是否是官方的) AUTOMATED(是否是自动构建的)

docker search --limit 5 redis

--limit:只列出N个镜像,默认25个

下载镜像

docker pull 镜像名称[:TAG]

不写TAG就是最新版,等价于docker pull 镜像名称:latest

查看镜像/容器/数据卷所占的空间

docker system df

删除指定镜像

docker rmi 镜像名称/镜像ID

docker rmi -f 镜像ID

-f:强制删除

删除多个镜像

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

删除全部镜像

docker rmi -f $(docker images -qa)

####################################

######### 容器命令 ################

####################################

新建并启动容器

docker run [OPTIONS] 镜像名称 [COMMAND] [ARG...]

[OPTIONS]选项:

--name="容器新名称":为容器指定一个名称

docker run -it --name="myu1" ubuntu

后台运行容器

-d:后台运行容器并返回容器ID,也就是启动守护式容器(后台运行)

docker run -d 容器名

docker run -d redis

交互式运行容器

使用镜像centos:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。

docker run -it centos /bin/bash

放在镜像名后的是命令。要退出终端,直接输入exit即可

-i,--interactive:以交互模式运行容器,通常与-t同时使用,也就是启动交互式容器(前台有伪终端,等待交互)

-t,--tty:为容器重新分配一个伪输入终端,通常与-i同时使用

设置端口映射

-P:随机端口映射

-p:指定端口映射

-p hostPort:containerPort 端口映射 -p 8080:80

-p ip:hostPort:containerPort 配置监听地址 -p 10.0.0.100:8080:80

-p ip::containerPort 随机分配端口 -p 10.0.0.100::80

-p hostPort:containerPort:udp 指定协议 -p 8080:80:tcp

-p 81:80 -p 443:443 指定多个端口映射

列出当前所有正在运行的容器

docker ps [OPTIONS]

-a:列出当前所有正在运行的容器和历史运行过的容器

-l:显示最近创建的容器

-n:显示最近n个创建的容器

-q:静默模式,只显示容器编号

退出容器

有两种退出方式

exit:run进去容器,exit退出,容器停止

ctrl+p+q:run进去容器,ctrl+p+q退出,容器不停止

启动已停止运行的容器

docker start 容器ID或容器名

重启容器

docker restart 容器ID或容器名

停止容器

docker stop 容器ID或容器名

强制停止容器

docker kill 容器ID或容器名

删除已停止的容器

docker rm 容器ID或容器名

强制删除容器(可以删运行中的容器)

docker rm -f 容器ID或容器名

一次性删除多个容器实例

docker rm -f $(docker ps -qa)

docker ps -qa | xargs docker rm

查看容器日志

docker logs 容器ID或容器名

查看容器内运行的进程

docker top 容器ID或容器名

查看容器内部细节(可以看到版本号和容器相关的信息)

docker inspect 容器ID或容器名

进入正在运行的容器并以命令行交互

第一种

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

docker exec -it 容器ID或容器名 bashShell

docker exec -it asset-redis redis-server -v

第二种

docker attach 容器ID或容器名

1.attach直接进入容器启动目录的终端,不会启动新的进程,用exit退出,会导致容器的停止

2.exec是在容器中打开新的终端,并且可以启动新的进程,用exit退出,不会导致容器的停止

一般用-d后台启动程序,再用exec进入对应容器实例

从容器内拷贝文件到主机

docker cp 容器ID:容器内路径 目的主机路径

导入导出容器

export导出容器的内容流作为一个tar归档文件,import从tar包中的内容创建一个新的文件系统再导入为镜像

docker export 容器ID > 文件名.tar

docker export be13986b4964 > redis.tar

cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号

cat redis.tar | docker import - cw/redis1:6.2.6

####################################

######### MySQL安装 ################

####################################

docker search mysql

docker pull mysql:latest

启动容器

docker run -p 3306:3306 --name mysql

--privileged=true

-v /root/cw/mysql/log:/var/log/mysql

-v /root/cw/mysql/data:/var/lib/mysql

-v /root/cw/mysql/conf:/etc/mysql/conf.d

-e MYSQL_ROOT_PASSWORD=123456

-d mysql:latest

查看

docker ps

添加mysql配置文件

cd /root/cw/mysql/conf

vi my.cnf

[client]

default_character_set=utf8

[mysqld]

collation_server=utf8_general_ci

character_set_server=utf8

进入容器

docker exec -it e780aeb44934 /bin/bash

mysql -uroot -p

CREATE TABLE user (
id bigint(20) NOT NULL AUTO_INCREMENT,
name varchar(255) DEFAULT NULL,
age int(11) DEFAULT NULL,

PRIMARY KEY (id)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;

INSERT INTO user (id, name, age) VALUES

(1, 'John', 30),

(2, 'Alice', 25),

(3, 'Bob', 40);

####################################

######### Redis安装 ###############

####################################

docker pull redis

docker images

docker run -p 6379:6379 --name redis

--privileged=true

-v /root/cw/redis/redis.conf:/etc/redis/redis.conf

-v /root/cw/redis/data:/data

-d redis

redis-server /etc/redis/redis.conf

修改redis.conf文件

1.开启redis验证(可选)

requirepass 123456

  1. 允许redis外地连接(必选)

注释掉 # bind 127.0.0.1

  1. daemonize no(必选)

将daemonize yes注释或设置daemonize no,该配置会和docker run中-d参数冲突,会导致容器一直启动失败

  1. protected-mode no

protected-mode no

5.开启redis数据持久化(可选)

appendonly yes

docker exec -it redis /bin/bash

redis-cli

####################################

######### Zookeeper安装 ###########

####################################

docker pull zookeeper

docker run -d --restart=always

--log-driver json-file

--log-opt max-size=100m

--log-opt max-file=2

--name zookeeper

-p 2181:2181

-v /etc/localtime:/etc/localtime

zookeeper

docker logs -f zookeeper

docker exec -it zookeeper /bin/bash

####################################

############# Kafka安装 ###########

####################################

docker pull bitnami/kafka

docker run -d --name kafka

--env KAFKA_ADVERTISED_HOST_NAME=localhost

--env KAFKA_ZOOKEEPER_CONNECT=192.168.10.100:2181

--env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.10.100:9092

--env KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092

--env KAFKA_HEAP_OPTS="-Xmx256M -Xms128M"

--net=host bitnami/kafka

docker logs -f kafka

docker exec -it kafka /bin/bash

cd /opt/bitnami/kafka/bin

查看所有topic

./kafka-topics.sh --bootstrap-server 192.168.10.100:9092 --list

创建topic

./kafka-topics.sh --bootstrap-server 192.168.10.100:9092 --create --replication-factor 1 --partitions 1 --topic test

查看topic详情

./kafka-topics.sh --bootstrap-server 192.168.10.100:9092 --describe --topic test

修改分区数(注意:分区数只能增加,不能减少)

./kafka-topics.sh --bootstrap-server 192.168.10.100:9092 --alter --topic test --partitions 3

删除topic

./kafka-topics.sh --bootstrap-server 192.168.10.100:9092 --delete --topic test

启动生产者

./kafka-console-producer.sh --bootstrap-server 192.168.10.100:9092 --topic test

启动消费者

./kafka-console-consumer.sh --bootstrap-server 192.168.10.100:9092 --topic test

把主题中所有的数据都读取出来(包括历史数据)

./kafka-console-consumer.sh --bootstrap-server 192.168.10.100:9092 --from-beginning --topic test

#######################################################################################################

docker pull mysql --下载

docker run --启动

docker ps -a --查看进程

docker logs pid --查看某个pid日志

docker run -p 3306:3306 --name mysql

-v /root/cw/mysql/log:/var/log/mysql

-v /root/cw/mysql/data:/var/lib/mysql

-v /root/cw/mysql/conf:/etc/mysql/conf.d

-e MYSQL_ROOT_PASSWORD=root

-d mysql:5.7

--在docker中启动mysql服务

docker run -p 3306:3306 --name mysql

-e MYSQL_ROOT_PASSWORD=root

-d mysql

--在docker中连接mysql

docker exec -it f5fe5e274afa mysql -uroot -proot

--先进入docker,然后再连接mysql

docker exec -it cebf88eecddb /bin/bash

mysql -uroot -proot

docker ps --查看当前运行的进程

docker stop pid --停止当前运行的进程

docker rm pid --删除当前运行的进程

curl localhost:8000

docker中启动redis:

Windows10系统

1、使用命令:docker pull redis 来下载redis镜像。

2、通过命令 docker images来查看redis镜像是否安装成功

3、安装成功后通过 docker run --name java_redis -d redis 来运行redis

4、通过命令 docker ps 来查看redis是否启动成功

5、当redis启动成功后,通过命令 docker exec -it java_redis redis-cli 来打开客户端

6、当客户端打开后,我们就可以使用redis的相关命令去操作redis数据库了。

7、我们安装redis镜像时没有设定密码,我们这里可以进行设置,通过命令 config set requirepass 密码 进行设定。

8、此时我们对redis数据库进行修改时则需要提供 认证,通过命令 auth 密码 来进行验证。

9、此时我们就完成了redis密码的设定,剩下就可以玩转redis了。

10、当前市场上Windows系统上有redis的GUI工具Redis Desktop Manager 工具(网上有相应的破解版本)。

相关推荐
想学习java初学者20 分钟前
Docker compose部署elasticsearch(单机版)
运维·docker·容器
落落落sss27 分钟前
MQ集群
java·服务器·开发语言·后端·elasticsearch·adb·ruby
我救我自己27 分钟前
UE5运行时创建slate窗口
java·服务器·ue5
2401_853275731 小时前
ArrayList 源码分析
java·开发语言
爪哇学长1 小时前
SQL 注入详解:原理、危害与防范措施
xml·java·数据库·sql·oracle
MoFe11 小时前
【.net core】【sqlsugar】字符串拼接+内容去重
java·开发语言·.netcore
_江南一点雨1 小时前
SpringBoot 3.3.5 试用CRaC,启动速度提升3到10倍
java·spring boot·后端
转转技术团队1 小时前
空间换时间-将查询数据性能提升100倍的计数系统实践
java·后端·架构
深情废杨杨1 小时前
后端-实现excel的导出功能(超详细讲解)
java·spring boot·excel
智汇探长1 小时前
EasyExcel自定义设置Excel表格宽高
java·excel·easyexcel