docker镜像重启_docker怎么启动镜像

docker镜像重启_docker怎么启动镜像docker常见镜像安装总结

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

准备

安装docker镜像时,先去docker hub上查找对应的官方镜像,然后选择版本,然后根据描述汇中的命令来启动镜像

docker官网地址:https://hub.docker.com/

常用命令

  1. 拉取镜像 docker pull 镜像名称:镜像版本(不写默认latest)
  2. 查看镜像列表 docker images
  3. 查看正在运行的容器 docker ps
  4. 查看所有的容器 docker ps -a
  5. 进入容器 docker exec -it 容器名称(或容器id) /bin/bash
  6. 容器中退出 exit
  7. 查看容器实时日志 docker logs -f 容器名称(或容器id)
  8. 删除镜像 docker rmi 镜像id(或镜像名称:标签)
  9. 强制删除镜像 docker rmi -f 镜像id(或镜像名称:标签)
  10. 删除容器 docker rm 容器id或容器名称
  11. 强制删除容器 docker rm -f 容器id或容器名称
  12. 镜像导出 docker save -o 导出后的名称.tar 镜像标识
  13. 镜像导入 docker load < 导入的文件
  14. 修改容器为开机启动 docker update --restart=always 容器标识
  15. 构建镜像:docker build -t runoob/ubuntu:v1 .
  16. 提交容器为新的镜像:docker commit {containerId} {image:tag}

mysql

mysql5.7 单机版安装

下载:docker pull mysql:5.7
镜像启动:

docker run --name mysql5.7 \
-v /data/mysql5.7/data:/var/lib/mysql \
-v /data/mysql5.7/conf:/etc/mysql/conf.d \
-v /data/mysql5.7/log:/var/log/mysql  \
-e MYSQL_ROOT_PASSWORD=123456  \
-p 3310:3306 -d mysql:5.7
命令注释:
docker run --name mysql5.7 \   							#容器名称
-v /data/mysql5.7/data:/var/lib/mysql \  				#挂载数据目录
-v /data/mysql5.7/conf:/etc/mysql/conf.d \				#挂载配置目录
-v /data/mysql5.7/log:/var/log/mysql  \					#挂载日志目录
-e MYSQL_ROOT_PASSWORD=123456  \						#设置ROOT初始化密码
-p 3310:3306 -d mysql:5.7								#-p 端口映射 -d后台启动 镜像名称:标签

mysql8.0单机版安装

  1. 下载 docker pull mysql:8.0
  2. 镜像启动
docker run --name mysql \ 
-v /data/mysql/data:/var/lib/mysql \
-v /data/mysql/conf:/etc/mysql/conf.d \
-v /data/mysql/log:/var/log/mysql  \
-e MYSQL_ROOT_PASSWORD=123456  \
-p 3306:3306 -d \
mysql:8.0
  1. 查看容器是否启动 docker ps -a

mysql8.0主从复制安装配置

在目录/data/mysql/conf上创建mysql.cnf配置文件

[mysqld]
#设置服务器id,为1表示主服务器,实例唯一ID,不能和canal的slaveId重复
server_id=1
#启动MySQ二进制日志系统
log-bin=mysql-bin
#选择row模式
binlog-format=ROW
#需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
binlog-do-db=xxl_job
#不同步mysql系统数据库
binlog-ignore-db=mysql

在目录/data/mysql2/conf上创建mysql.cnf配置文件

[mysqld]中配置如下
#实例唯一ID,不能和canal的slaveId重复,表示为从数据库
server-id=2
#启动MySQL二进制日志系统
log-bin=mysql-bin
#选择row模式
binlog-format=ROW
#需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
replicate-do-db=xxl_job
#不同步mysql系统数据库
replicate-ignore-db=mysql

在目录/data/mysql3/conf上创建mysql.cnf配置文件

[mysqld]中配置如下
#实例唯一ID,不能和canal的slaveId重复,表示为从数据库
server-id=3
#启动MySQL二进制日志系统
log-bin=mysql-bin
#选择row模式
binlog-format=ROW
#需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
replicate-do-db=xxl_job
#不同步mysql系统数据库
replicate-ignore-db=mysql

接着上面启动mysql第二个容器和第三个容器,并重启第一个容器

重启mysql容器:docker restart mysql

镜像启动mysql2容器:

docker run --name mysql2 \
-v /data/mysql2/data:/var/lib/mysql \
-v /data/mysql2/conf:/etc/mysql/conf.d \
-v /data/mysql2/log:/var/log/mysql  \
-e MYSQL_ROOT_PASSWORD=123456  \
-p 3307:3306 -d \
mysql:8.0

镜像启动mysql3容器:

docker run --name mysql3 \
-v /data/mysql3/data:/var/lib/mysql \
-v /data/mysql3/conf:/etc/mysql/conf.d \
-v /data/mysql3/log:/var/log/mysql  \
-e MYSQL_ROOT_PASSWORD=123456  \
-p 3308:3306 -d \
mysql:8.0

在主数据库中执行 show master status;
在这里插入图片描述
在从库中执行以下命令:

CHANGE MASTER TO
MASTER_HOST='服务器主机地址',
MASTER_USER='用户名',
MASTER_PASSWORD='密码!',
MASTER_LOG_FILE='二进制文件名',
MASTER_LOG_POS=位置;

我这边对应的命令是:

CHANGE MASTER TO
MASTER_HOST='192.168.73.168',
MASTER_USER='root',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000002',
MASTER_LOG_POS=156;

如果执行报下面的错误,需要先通过命令stop slave;停一下之前启动是slave
> 3021 - This operation cannot be performed with a running slave io thread; run STOP SLAVE IO_THREAD FOR CHANNEL '' first.

通过命令start slave;开启主从同步
通过命令show slave status;查看开启同步状态是否成功
在这里插入图片描述
slave_io_running 和 slave_sql_running 都是 yes 代表成功

不成功的,请检查以下几项

  1. 主库和从库在开启同步时表结构和数据是否是相同的,有差别需要同步后再开启主从复制。
  2. 查看主库同步的数据库是否有其他连接,如果有先关闭,开启主从复制后再开启
  3. 检查slave中的ip用户等是否正确
  4. 多试几次

最后就是主从复制检验了,主库数据变更看是否自动同步到从库

springboot使用shardingjdbc配置读写分离

引入依赖

<!-- sharding -->
<dependency>
	<groupId>org.apache.shardingsphere</groupId>
	<artifactId>sharding-jdbc-spring-boot-starter</artifactId>
	<version>4.0.0-RC1</version>
</dependency>
<!--阿里数据库连接池 -->
<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>druid-spring-boot-starter</artifactId>
	<version>1.1.14</version>
</dependency>

application.properties中的配置

# shardingjdbc 配置
spring.shardingsphere.datasource.names=master,slave1,slave2
# 主数据源配置
spring.shardingsphere.datasource.master.type=org.apache.tomcat.jdbc.pool.DataSource
spring.shardingsphere.datasource.master.driver-class-name=com.mysql.jdbc.Driver
spring.shardingsphere.datasource.master.url=jdbc:mysql://192.168.73.168:3306/xxl_job?Unicode=true&characterEncoding=UTF-8
spring.shardingsphere.datasource.master.username=root
spring.shardingsphere.datasource.master.password=123456
# 从数据源配置1
spring.shardingsphere.datasource.slave1.type=org.apache.tomcat.jdbc.pool.DataSource
spring.shardingsphere.datasource.slave1.driver-class-name=com.mysql.jdbc.Driver
spring.shardingsphere.datasource.slave1.url=jdbc:mysql://192.168.73.168:3307/xxl_job?Unicode=true&characterEncoding=UTF-8
spring.shardingsphere.datasource.slave1.username=root
spring.shardingsphere.datasource.slave1.password=123456
# 从数据源配置2
spring.shardingsphere.datasource.slave2.type=com.alibaba.druid.pool.DruidDataSource
spring.shardingsphere.datasource.slave2.driver-class-name=com.mysql.jdbc.Driver
spring.shardingsphere.datasource.slave2.url=jdbc:mysql://192.168.73.168:3308/xxl_job?Unicode=true&characterEncoding=UTF-8
spring.shardingsphere.datasource.slave2.username=root
spring.shardingsphere.datasource.slave2.password=123456
#配置默认数据源master 默认数据源,主要用于写
spring.shardingsphere.sharding.default-data-source-name=master
## 读写分离配置
spring.shardingsphere.masterslave.load-balance-algorithm-type=round_robin
## 最终的数据源名称
spring.shardingsphere.masterslave.name=dataSource
## 主库数据源名称
spring.shardingsphere.masterslave.master-data-source-name=master
## 从库数据源名称列表,多个逗号分隔
spring.shardingsphere.masterslave.slave-data-source-names=slave1,slave2
## 开启SQL显示
spring.shardingsphere.props.sql.show=true

Elasticsearch

拉取:docker pull elasticsearch:7.16.3
启动:

docker run -d --name elasticsearch 
-p 9200:9200 -p 9300:9300 
-e "discovery.type=single-node" 
-v /data/elasticsearch/data:/usr/share/elasticsearch/data 
-v /data/elasticsearch/config:/usr/share/elasticsearch/config 
elasticsearch:7.16.3

命令注释:

docker run -d --name elasticsearch 									# -d 后台启动 --name 容器名称
-p 9200:9200 -p 9300:9300 											# -p 端口映射
-e "discovery.type=single-node" 									# 启动参数:单节点启动
-v /data/elasticsearch/data:/usr/share/elasticsearch/data 			# 挂载数据目录
-v /data/elasticsearch/config:/usr/share/elasticsearch/config 		# 挂载配置目录
elasticsearch:7.16.3												# 镜像名称:镜像标签

logstash

拉取:docker pull logstash:7.16.3
启动:

docker run -d \
  --name=logstash \ 
  --restart=always \
  -p 5044:5044 \
  -v /data/logstash/data/:/usr/share/logstash/data/ \ 
  -v /data/logstash/config/:/usr/share/logstash/config/ \ 
  -v /data/logstash/logs/:/usr/share/logstash/logs/  \
  logstash:7.16.3

rocketmq

mkdir -p /data/rocketmq/rmqserver01/logs
mkdir -p /data/rocketmq/rmqserver01/store
mkdir -p /data/rocketmq/rmqbroker01/logs
mkdir -p /data/rocketmq/rmqbroker01/store
mkdir -p /data/rocketmq/rmqbroker01/conf

#创建server容器 
docker create -p 9876:9876 --name rmqserver01 
-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" 
-e "JAVA_OPTS=-Duser.home=/opt" 
-v /data/rocketmq/rmqserver01/logs:/opt/logs 
-v /data/rocketmq/rmqserver01/store:/opt/store 
foxiswho/rocketmq:server-4.3.2

#启动容器 
docker start rmqserver rmqbroker

#启动broker容器
docker run -it -d --net host --name rmqbroker01 \
-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" \ 
-e "JAVA_OPTS=-Duser.home=/opt"  \
-v /data/rocketmq/rmqbroker01/conf/broker.conf:/etc/rocketmq/broker.conf \ 
-v /data/rocketmq/rmqbroker01/logs:/opt/logs \
-v /data/rocketmq/rmqbroker01/store:/opt/store \ 
--privileged=true \
foxiswho/rocketmq:broker-4.3.2

#启动rocketmq-console
docker run -d \
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.73.168:9876;192.168.73.168:9877 -Dcom.rocketmq.sendMessageWithVIPChannel=false" \
-p 8082:8080 -t \
styletang/rocketmq-console-ng:1.0.0
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/190786.html原文链接:https://javaforall.net

(0)
上一篇 2026年2月13日 下午11:43
下一篇 2026年2月14日 上午7:22


相关推荐

  • PyCharm+Docker:打造最舒适的深度学习炼丹炉

    PyCharm+Docker:打造最舒适的深度学习炼丹炉我是按照这个原文当中的步骤和理解添加成功的 https zhuanlan zhihu com p 添加成功后 可以启动成功 但原来的 127 0 0 1 8000 这个链接无效 又按照 https blog csdn net sinat article details 这篇文章的理解 才进入系统 总结 pycharm 使用的 docker

    2026年3月27日
    2
  • 【DockerCE】使用Portainer-ce管理监控docker容器实例

    【DockerCE】使用Portainer-ce管理监控docker容器实例PortainerCE CommunityEdi 是 Portainer 官方发布的开源 免费产品 用于服务器上运行的 docker 相关资源的展示 docker 容器实例的运行监控 日志展示 资源使用等 docker 容器实例控制等 此外 官方还有一个收费的商业版本 PortainerBE BusinessEdit 资源展示 运行监控 gt 启动日志 gt 容器资源使用情况容器实例的控制 在已经安装 运行了 do

    2025年11月19日
    5
  • pve安装docker图形化_怎么安装docker

    pve安装docker图形化_怎么安装docker基本相当于转载,但我光贴图也不行啊,还是把步骤加上去年年底这NUC到手时,就装PVE练手,然而最后做主力挂机的是那会买的个1037U小主机当时就尝试过装LibreELEC,结果是接显示器黑屏不过后来我直接在宿主机上装桌面和Kodi,但是吧那源里的Kodi是17的对于x265是软解。。。怎么装当然是看的值得买上的这个人家是OMV咱这是PVE都是装桌面再装KODI,但是为了保持纯净的PVE所以才想直通…

    2025年6月23日
    3
  • docker(11)Dockerfile 中的COPY与ADD 命令「建议收藏」

    docker(11)Dockerfile 中的COPY与ADD 命令「建议收藏」前言Dockerfile中提供了两个非常相似的命令COPY和ADD,本文尝试解释这两个命令的基本功能,以及其异同点,然后总结其各自适合的应用场景。Build上下文的概念在使用dock

    2022年7月29日
    12
  • docker容器中使用rsyslogd

    docker容器中使用rsyslogdrsyslogd作为CentOS:7系统自带的日志管理工具,为很多服务提供了便捷的日志管理接入方案,然而CentOS:7的官方镜像默认是不支持rsyslogd的。我们做个实验:1)启动测试容器dockerrun-it–name=test-syslogcentos:7/bin/bash2)安装rsyslogdyum-yinstallrsyslog…

    2022年8月15日
    22
  • docker flannel安装

    docker flannel安装1 关闭防火墙 centos7 systemctlsto servicecento servieiptabl 安装配置 etcdyuminsta etc etcd etcd confETCD LISTEN CLIENT URLS http 0 0 0 0 2379 nbsp nbsp 监听客户端地址 ETCD A

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号