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 工具(网上有相应的破解版本)。

相关推荐
LUCIAZZZ16 分钟前
HikariCP数据库连接池原理解析
java·jvm·数据库·spring·springboot·线程池·连接池
sky_ph40 分钟前
JAVA-GC浅析(二)G1(Garbage First)回收器
java·后端
IDRSolutions_CN1 小时前
PDF 转 HTML5 —— HTML5 填充图形不支持 Even-Odd 奇偶规则?(第二部分)
java·经验分享·pdf·软件工程·团队开发
hello早上好1 小时前
Spring不同类型的ApplicationContext的创建方式
java·后端·架构
HelloWord~2 小时前
SpringSecurity+vue通用权限系统2
java·vue.js
让我上个超影吧2 小时前
黑马点评【基于redis实现共享session登录】
java·redis
nuczzz2 小时前
GPU虚拟化
docker·kubernetes·k8s·gpu·nvidia
fengyehongWorld2 小时前
Linux Docker的简介
linux·docker
BillKu3 小时前
Java + Spring Boot + Mybatis 插入数据后,获取自增 id 的方法
java·tomcat·mybatis
全栈凯哥3 小时前
Java详解LeetCode 热题 100(26):LeetCode 142. 环形链表 II(Linked List Cycle II)详解
java·算法·leetcode·链表