Docker与Compose下载与使用命令笔记

Docker与Compose下载与使用命令笔记

  • 搭建docker
  • 下载工具命令
  • Compose

搭建docker

在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,你可以从仓库安装和更新 Docker。
docker依赖于系统的一些必要的工具, yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。

yum install -y yum-utils device-mapper-persistent-data lvm2

添加软件源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装 Docker Engine-Community

yum install docker-ce docker-ce-cli containerd.io

启动 Docker。

systemctl start docker

可以使用docker version查看一下当前的版本。

docker version

常用命令:

搜索镜像命令:
docker search 镜像名称

下载镜像:
docker pull 镜像名称

查看已有镜像
docker images

查看所以容器:(查看存活容器  去掉-a)
docker ps -a

停止运行的容器
docker stop <容器ID>

启动已停止运行的容器
docker start <容器ID>

删除容器
docker rm 容器ID或容器名

打包镜像
docker tag hello-world:latest wujiaxin/helloworld:18.04

将自己的镜像推送到 Docker Hub
docker push wujiaxin/helloworld

启动        systemctl start docker
守护进程重启   sudo systemctl daemon-reload
重启docker服务   systemctl restart  docker

docker镜像加速,阿里云镜像获取地址:https://cr.console.aliyun.com/cn-

hangzhou/instances/mirrors
sudo mkdir -p /etc/docker 
sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://bjtzu1jb.mirror.aliyuncs.com"] } EOF 
sudo systemctl daemon-reload
sudo systemctl restart docker

下载工具命令

下载mysql

docker pull mysql 

默认最新版本,如果加版本需要

docker pull mysql:5.7

启动mysql

docker run --name=mysql -it -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
--name : 为镜像创建别名,方便操作
-p : 映射端口,如果你宿主机有mysql,为了避免与本机的 mysql端口冲突,更改端口,如 -p 33066:3306;将容器的 3306 端口挂载到宿主机的 3306 端口上;
-e : 环境变量,为 mysql 的 root 用户设置密码为123456
-d: 后台运行
-i: 交互式操作。
-t: 终端。

正式运行需要加两个挂载子命令

docker run -d \
--name mysql \
-p 3306:3306 \
-v /usr/local/docker/mysql/config/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf \
-v /usr/local/docker/mysql/data/mysql:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.7

docker exec -it mysql bash进入容器,用mysql -u root -p进入mysql命令行,然后能进行相关的数据库操作了

docker exec  -it  mysql  bash

mysql -u  root -p

退出mysql命令行

quit

下载redis

docker pull redis:latest

启动Redis

docker run -itd --name redis-wjx -p 6379:6379 redis

-p 6379:6379:映射容器服务的 6379 端口到宿主机的 6379 端口。外部可以直接通过宿主机ip:6379 访问到 Redis 的服务。
下载nacos

docker pull nacos/nacos-server

启动nacos

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

参数说明:
MODE standalone  单机模式
登录密码默认nacos/nacos

下载rabbitmq (该版本包含了web控制页面)

docker pull rabbitmq:management

启动rabbitmq

#方式一:默认guest 用户,密码也是 guest

docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq:management

#方式二:设置用户名和密码

docker run -d --hostname my-rabbit --name rabbit -e RABBITMQ_DEFAULT_USER=user -e RABBITMQ_DEFAULT_PASS=password -p 15672:15672 -p 5672:5672 rabbitmq:management


-d 后台运行容器;
--name 指定容器名;
-p 指定服务运行的端口(5672:应用访问端口;15672:控制台Web端口号);
-v 映射目录或文件;
--hostname  主机名(RabbitMQ的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名);
-e 指定环境变量;(RABBITMQ_DEFAULT_VHOST:默认虚拟机名;RABBITMQ_DEFAULT_USER:默认的用户名;RABBITMQ_DEFAULT_PASS:默认用户名的密码)

下载elk( 集成镜像)

docker pull sebp/elk

启动

docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -itd --name elk sebp/elk

9200 端口验证ES 和 5601端口验证Kibanna

下载zookeeper 和下载kafka

docker pull wurstmeister/zookeeper
docker pull wurstmeister/kafka

启动zookeeper

docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/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 wurstmeister/zookeeper

启动kafka

docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=172.16.0.13:2181/kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.16.0.13:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime -t wurstmeister/kafka

生产:docker run -d --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=172.16.0.13:2181/kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.16.0.13:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime wurstmeister/kafka


-e KAFKA_BROKER_ID=0  在kafka集群中,每个kafka都有一个BROKER_ID来区分自己

-e KAFKA_ZOOKEEPER_CONNECT=172.16.0.13:2181/kafka 配置zookeeper管理kafka的路径172.16.0.13:2181/kafka

-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.16.0.13:9092  把kafka的地址端口注册给zookeeper,如果是远程访问要改成外网IP,类如Java程序访问出现无法连接。

-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 配置kafka的监听端口

-v /etc/localtime:/etc/localtime 容器时间同步虚拟机的时间

Compose

是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
Compose 使用的三个步骤:
使用 Dockerfile 定义应用程序的环境。
使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
最后,执行 docker-compose up 命令来启动并运行整个应用程序。
Compose 安装 ( 从 Github 上下载它的二进制包来使用)

curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose-L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

将启用权限二进制文件:

chmod +x /usr/local/bin/docker-compose

查看版本:

docker-compose version

具体命令介绍: https://blog.51cto.com/9291927/2310444

maven插件构建docker镜像
maven构建docker镜像,需要远程连接到docker所在的宿主机,其默认端口是 2375,远程连接 docker 需要修改 docker 的配置文件。

vim /usr/lib/systemd/system/docker.service

在 ExecStart= 后添加配置 ‐H tcp://0.0.0.0:2375 ‐H unix:///var/run/docker.sock ,0.0.0.0 代表所有 ip ,也可指定 ip。

刷新,重启

systemctl daemon-reload

systemctl restart docker

你可能感兴趣的:(学习笔记,docker,linux,java,mysql,centos)