Docker

Mr.Jia 2023-3-30 224 3/30

docker构建镜像(注意点) :docker build -t my .

 

sudo yum update -y 更新包资源

sudo yum install docker-ce -y 安装docker

sudo systemctl start docker  启动docker
sudo systemctl enable docker 设置开启自启动

docker update --restart=alwsys  容器id

中国docker镜像:https://registry.docker-cn.com

安装前要开启虚拟化dockercopose 管理docker

镜像源配置

  • Linux:编辑 /etc/docker/daemon.json 文件,如果文件不存在则创建它。在该文件中添加以下内容:
  {   
    "registry-mirrors": [       
     "https://registry.docker-cn.com",       
     "https://docker.mirrors.ustc.edu.cn",     
     "https://hub-mirror.c.163.com",        
     "https://mirror.baidubce.com",         
     "https://ccr.ccs.tencentyun.com"  ]  
 }

如果要使用多个镜像源,可以在 "registry-mirrors" 数组中添加多个镜像源地址,以英文逗号分隔。

保存文件并重启daemon进程 and Docker 服务:

sudo systemctl daemon-reload		#重启daemon进程
sudo systemctl restart docker		#重启docker
  • Windows:在 Docker 设置中,选择 “Docker Engine” 选项卡,在该选项卡中找到 “registry-mirrors” 一栏,输入镜像源地址,并应用更改。
  • macOS:在 Docker Desktop 应用设置中,选择 “Docker Engine”,在右侧编辑 JSON 文件,添加镜像源地址,并应用更改。

测试:

docker info

dockerfile文件

关键字:

FROM:需要下载的镜像:版本 eg:FROM mysql:8.0

 

docker-compose文件

  • version:定义Docker Compose文件的版本。不同的版本可能支持不同的特性和语法。
  • services:定义多个容器服务,每个服务对应一个容器。
  • image:指定使用的Docker镜像。
  • build:指定使用的Dockerfile路径,或者直接构建镜像。
  • ports:定义容器端口与主机端口的映射关系。
  • environment:设置环境变量。
  • volumes:定义数据卷的挂载。
  • networks:定义容器使用的网络。
  • depends_on:定义服务之间的依赖关系。
  • command:覆盖容器启动时默认的执行命令。
  • restart:定义容器退出时的重启策略。

eg:

version: '3'
services:
  mysql:
    container_name: test-mysql
#    restart: always
    image: mysql:5.7
    ports:
      - "3306:3306"
    environment:
      TZ: 'Asia/Shanghai'
      MYSQL_ROOT_PASSWORD: root
    networks:
      - test
  redis:
    container_name: test-redis
#    restart: always
    image: redis
    ports:
      - "6379:6379"
    networks:
      - test
  rabbitmq:
    container_name: test-rabbitmq
    image: rabbitmq:3.11
#    restart: always
    ports:
      - "15672:15672"
      - "5672:5672"
    environment:
      RABBITMQ_DEFAULT_USER: admin
      RABBITMQ_DEFAULT_PASS: admin
#   启动rabbitmq管理页面
    networks:
      - test
networks:
  test:

命令

-t 命名 【构建是用来命名】
--name 运行时用来命名的
-d 后台运行
-p映射容器端口号到宿主机 [宿主机端口]:[容器端口]
-v 挂载【绝对路径】

-e设置参数

安装MySQL

docker run -d -p 3306:3306  -e MYSQL_ROOT_PASSWORD=root --name mysql mysql:5.7

安装redis

docker run -d -p 6379:6379 --name redis  redis:latest

docker run --name myredis -p 6379:6379 -d redis --requirepass "mypassword" 设置密码

https://jueee.github.io/2021/03/2021-03-14-Docker%E5%90%AF%E5%8A%A8Redis%E5%B9%B6%E6%B7%BB%E5%8A%A0%E5%AF%86%E7%A0%81/

安装RabbitMQ

默认账号密码:guest

默认访问地址:http://localhost:15672/

docker run -d --name rabbitmq -p 15672:15672 -p 5672:5672 rabbitmq:3.11 bash -c "sleep 10 && rabbitmq-plugins enable rabbitmq_management && tail -f /dev/null"

docker run -d --name rabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 rabbitmq:3.11

进入容器 docker exec -it rabbitmq /bin/bash

rabbitmq-plugins enable rabbitmq_management

  • docker run: 运行 Docker 容器的命令。
  • -d: 指定容器以后台(detached)模式运行,即不会阻塞当前终端。
  • --name rabbit: 指定容器的名称为 "rabbit",这样可以方便地对容器进行管理和识别。
  • -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin: 设置 RabbitMQ 的默认用户名和密码为 "admin",这两个参数用于授权访问 RabbitMQ 服务。
  • -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883: 指定容器内部端口与宿主机端口的映射关系。其中:
    • 15672:15672 映射 RabbitMQ 管理界面的端口。
    • 5672:5672 映射 RabbitMQ 的 AMQP 端口,用于客户端和应用程序连接到 RabbitMQ 服务器。
    • 25672:25672 映射 RabbitMQ 的集群端口,用于集群节点间通信。
    • 61613:61613 映射 RabbitMQ STOMP 端口,STOMP(Simple Text Oriented Messaging Protocol)是一种简单的消息传递协议。
    • 1883:1883 映射 RabbitMQ MQTT 端口,MQTT(Message Queuing Telemetry Transport)是一种轻量级的发布/订阅消息传输协议。
  • rabbitmq:3.11: 指定要运行的 RabbitMQ 容器的镜像及其版本,这里使用的是 RabbitMQ 3.11 版本。

安装nacos

docker run --name nacos-server -e MODE=standalone -p 8848:8848 -d nacos/nacos-server

-e MODE=standalone:单机版启动

访问地址:http://192.168.1.115:8848/nacos/index.html

安装JMeter

docker run --name jmeter -it justb4/jmeter:latest

安装ElasticSearch和kibana

ElasticSearch

docker run --name elasticsearch -d -p 9200:9200 -p 9300:9300 --network network1 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.0.0

discovery.type=single-node 参数指定了这是一个单节点的 Elasticsearch 集群。

验证 Elasticsearch 是否运行

curl -X GET "localhost:9200/"

kibana 

docker run -d --name kibana -e ELASTICSEARCH_HOSTS=http://172.28.0.2:9200/ --network network1 -p 5601:5601 kibana:7.17.1

为了方便连接把es和kibana放到一个网络中

创建网络

docker network create network1

已创建好的网络链接容器

docker network connect my_network existing_container

查看容器详细信息

docker inspect kibana

 

jenkins

docker run -d --name jenkins -p 8081:8080 -v /data/jenkins_home:/var/jenkins_home jenkins/jenkins

报错:touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?

/data/jenkins_home 目录权限问题,修改权限:chown -R 1000:1000 /data/jenkins_home

getent group docker 查看docker在liunx中的那个用户组中

版本过低无法安装插件  下载高版本的war

docker cp data/jenkins2.440.3.war jenkins:/usr/share/jenkins/jenkins.war

- THE END -

Mr.Jia

9月23日13:59

最后修改:2024年9月23日
0

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论