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
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://jiaheming.cn/2023/03/docker/

共有 0 条评论