您的位置:首页 > 娱乐 > 八卦 > 网络推广哪家好_页面设计最好只使用一种颜色避免视觉效果混淆_高端网站建设公司排行_广州:推动优化防控措施落

网络推广哪家好_页面设计最好只使用一种颜色避免视觉效果混淆_高端网站建设公司排行_广州:推动优化防控措施落

2025/4/30 14:47:59 来源:https://blog.csdn.net/Carefree_State/article/details/145493107  浏览:    关键词:网络推广哪家好_页面设计最好只使用一种颜色避免视觉效果混淆_高端网站建设公司排行_广州:推动优化防控措施落
网络推广哪家好_页面设计最好只使用一种颜色避免视觉效果混淆_高端网站建设公司排行_广州:推动优化防控措施落

在这里插入图片描述

一、初识 Docker

在这里插入图片描述

长话短说,你可以将一个软件开发完成后,连同其本身与其所依赖的一切东西(包括操作系统的函数,各种操作系统环境),看成一个整体,称为一个镜像

理论上有了这一个整体,镜像就可以运行了,并且不依赖于操作系统,而 Docker 就可以实现这一操作,Docker 可以创建一个运行环境,称为一个容器

这个容器依然可以理解为一个整体,在容器外来看,它就是一个运行中的程序,而在容器内部,它可以是另一套操作系统(可以理解为一个操作系统,但只是操作系统的必备的函数和文件),必须指定外部端口与内部端口的映射(Docker 代理),外部程序才能访问内部端口

举个简单的例子:一个 Linux 服务器通过 Docker 部署三个 Redis,在三个容器内部,Redis 的端口都是 6379,但外部端口可以指定 6379、6380、6381(不重复)

只需要安装 Docker,其实在一台服务器就可以安装很多软件了,避免麻烦的手动安装,以及环境、版本的影响

这也只是简单的了解,以下是 Docker 的常见命令与常见案例!(期间一定要借助 --help 帮助手册)

二、Docker 安装

Docker 安装其实网上能找到的基本都能行,但是为了不让我们的心态爆炸,这里有一些需要提到的:

  1. 一些端口的防火墙一定需要打开
  2. 不要遗漏镜像内部的多个程序(有些镜像内部是由多个程序,多个端口的、例如 SpringBoot 项目集成了 XXL-JOB 框架,可能会有执行器的端口)
  3. 国内源,一些镜像死活拉不下来,哪怕用其他的版本号,一定要尽量配置一些方便的,以下是我目前用起来不错的配置:

其中阿里的可以在 https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 看到

在这里插入图片描述

在这里插入图片描述

CentOS 文件上传和压缩:

yum install lrzsz
yum install unzip

三、使用 Docker

(1)Docker 镜像命令

命令说明文档地址
docker pull拉取镜像docker pull
docker push推送镜像到DockerRegistrydocker push
docker images查看本地镜像docker images
docker rmi删除本地镜像,不能删除创建了容器的镜像,因为容器是引用了镜像(但是镜像在各自容器运行环境独立)docker rmi
docker run创建并运行容器(不能重复创建)docker run
docker stop停止指定容器docker stop
docker start启动指定容器docker start
docker restart重新启动容器docker restart
docker rm删除指定容器,docs.docker.com
docker ps查看容器docker ps
docker logs查看容器运行日志docker logs
docker exec进入容器(常见格式:docker exec -it [container] bash)docker exec
docker save保存镜像到本地压缩文件docker save
docker load加载本地压缩文件到镜像docker load
docker inspect查看容器详细信息docker inspect

(2)数据卷命令

命令说明文档地址
docker volume create创建数据卷docker volume create
docker volume ls查看所有数据卷docs.docker.com
docker volume rm删除指定数据卷docs.docker.com
docker volume inspect查看某个数据卷的详情docs.docker.com
docker volume prune清除数据卷docker volume prune

(3)Dockersfile 自定义镜像

docker build -t [image:tag] .

指定目录进行构建(一个目录最多有一个 Dockerfile 文件,所以不会有冲突,而且只指定目录不需要每次都指定固定的 Dockerfile 文件名)

指令说明示例
FROM指定基础镜像FROM centos:6
ENV设置环境变量,可在后面指令使用ENV key value
COPY拷贝本地文件到镜像的指定目录COPY ./xx.jar /tmp/app.jar
RUN执行Linux的shell命令,一般是安装过程的命令RUN yum install gcc
EXPOSE指定容器运行时监听的端口,是给镜像使用者看的EXPOSE 8080
ENTRYPOINT镜像中应用的启动命令,容器运行时调用ENTRYPOINT java -jar xx.jar

(4)DockerCompose 多容器部署

在这里插入图片描述

docker-compose.yml 文件示例:

version: "3.2"services:nacos:image: nacos/nacos-serverenvironment:MODE: standaloneports:- "8848:8848"mysql:image: mysql:5.7.25environment:MYSQL_ROOT_PASSWORD: 123volumes:- "$PWD/mysql/data:/var/lib/mysql"- "$PWD/mysql/conf:/etc/mysql/conf.d/"userservice:build: ./user-serviceorderservice:build: ./order-servicegateway:build: ./gatewayports:- "10010:10010"

服务与服务之间,通过 docker compose 的作用,可以通过服务名进行访问,这样单个服务无需暴露端口,每个服务还是隔离的,但是可以相互访问

但是服务不能通过 localhost 或者不同 docker compose 的服务访问

基本语法如下:

docker-compose [OPTIONS] [COMMAND]

OPTIONS:

参数或指令说明
-f指定compose文件的路径和名称
-p指定project名称。project就是当前compose文件中设置的多个service的集合,是逻辑概念
-d后台执行

COMMAND:

参数或指令说明
up创建并启动所有service容器
down停止并移除所有容器、网络
ps列出所有启动的容器
logs查看指定容器的日志
stop停止容器
start启动容器
restart重启容器
top查看运行的进程
exec在指定的运行中容器中执行命令

四、常见案例

Explore Docker’s Container Image Repository

一定要搜索!!!

(1)MySQL

hmy.cnf:

[mysqld]
skip-name-resolve
character_set_server=utf8
datadir=/var/lib/mysql
server-id=1000
mkdir /root/mysql
mkdir /root/mysql/data
mkdir /root/mysql/conf
cd /root/mysql/confdocker pull mysql:5.7docker run \
--name mysql-server \
-p 3306:3306 \
-v /root/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf \
-v /root/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=xxx \
-e TZ=Asia/Shanghai \
-d mysql:5.7 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_cidocker exec -it mysql-server mysql -u root -p

(2)Redis

redis.conf 要根据对应版本去找!

mkdir /root/redis
mkdir /root/redis/data
mkdir /root/redis/conf
cd /root/redis/confdocker pull redis:6.2.6docker run \
--name redis-server \
-p 6379:6379 \
-v /root/redis/conf:/usr/local/etc/redis \
-v /root/redis/data:/data \
-d redis:6.2.6 redis-server /usr/local/etc/redis/redis.confdocker exec -it redis-server redis-cli

(3)RabbitMQ

mkdir /root/mq
cd /root/mqdocker rm mq-server -f
docker rmi rabbitmq:3.8-management -f
docker volume rm mq-plugins -fdocker pull rabbitmq:3.8-management# 插件数据卷最好还是直接挂载 volume,而不是挂载我们的目录
docker run \
--name mq-server \
-e RABBITMQ_DEFAULT_USER=mms \
-e RABBITMQ_DEFAULT_PASS=bitter-macaron \
--hostname mq1 \
-v mq-plugins:/plugins \
-p 15672:15672 \
-p 5672:5672 \
-d rabbitmq:3.8-management# 添加延迟交换机的插件:
docker volume inspect mq-pluginscd /var/lib/docker/volumes/mq-plugins/_datadocker exec -it mq-server bashrabbitmq-plugins enable rabbitmq_delayed_message_exchange

(4)Minio

mkdir /root/minio
cd /root/miniodocker pull bitnami/minio:latestdocker run \
--name minio-server \
-p 9005:9000 \
-p 9001:9001 \
-v /root/minio/data:/bitnami/minio/data  \
--env MINIO_ROOT_USER="mms" \
--env MINIO_ROOT_PASSWORD="bitter-macaron" \
-d bitnami/minio:latest

(5)自定义(XXL-JOB)

Dockerfile:

FROM openjdk:17-jdk-slimCOPY ./xxl-job-admin-3.0.0-SNAPSHOT.jar /root/app.jarENV PARAMS=""ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezoneEXPOSE 1718ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS /root/app.jar $PARAMS"]
mkdir /root/xxljob
cd /root/xxljobXXLJOB_IMAGE_NAME=xxljob:3.0.0
XXLJOB_CONTAINER_NAME=xxljob-serverdocker rm -f ${XXLJOB_CONTAINER_NAME}
docker rmi -f ${XXLJOB_IMAGE_NAME}
docker build -t ${XXLJOB_IMAGE_NAME} .docker run \
--name ${XXLJOB_CONTAINER_NAME} \
-p 1718:1718 \
-d ${XXLJOB_IMAGE_NAME}

文章到这里就戛然而止了,虽然不细致,但是大部分日常开发用到的也不多,需要的可以继续深入了解:

  1. 一键化部署,流水线之类的
  2. 项目中需要通过 docker api 创建镜像和容器(在线 oj)
  3. 微服务部署
  4. Docker 镜像仓库

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com