Docker安装配置指南
大约 3 分钟
Docker安装配置指南
作 者: T.J
日 期: 2022-10-15
设置存储库
如果是第一次在新主机上安装docker-ce, 需要设置docker的存储库. 设置成功后, 可以从存储库中安装和更新Docker.
移除旧版本
$ yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装所需依赖
$ yum install -y yum-utils device-mapper-persistent-data lvm2
设置存储库
# mirrors <https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo>
$ yum-config-manager \\
--add-repo <https://download.docker.com/linux/centos/docker-ce.repo>
安装 Docker CE
AWS
$ amazon-linux-extras install docker
CentOS
$ yum install docker-ce
卸载 Docker CE
卸载 Docker 包
$ yum remove docker-ce
删除所有的镜像、容器以及数据卷
$ rm -rf /var/lib/docker
常用命令
修改已创建的容器内存限制
$ docker update --memory 1G --memory-swap -1 CONTAINER_NAME
memory-swap 设置值为 -1, 表示容器 swap 空间使用不受限制
修改已创建的容器总是自动启动
$ docker container update --restart=always CONTAINER_NAME
常用中间件
Nginx
$ docker run \
-d \
-p 80:80 \
-v /YOUR_PATH/nginx/html:/usr/share/nginx/html \
-v /YOUR_PATH/nginx/conf:/etc/nginx \
-v /YOUR_PATH/nginx/logs:/var/log/nginx \
-e TZ='Asia/Shanghai' \
--name nginx \
--restart always \
nginx
Redis
$ docker run \
-d \
-p 6379:6379 \
-v /YOUR_PATH/redis/conf:/etc/redis \
-v /YOUR_PATH/redis/data:/data \
--name redis-server \
--restart always \
redis:6.0.8 \
redis-server /etc/redis/redis.conf --appendonly yes
需要在``/YOUR_PATH/redis/conf
目录提前创建和设置好redis.conf`文件
MySQL
$ docker run \
-d \
-p 3306:3306 \
-v /YOUR_PATH/mysql/conf.d:/etc/mysql/conf.d \
-v /YOUR_PATH/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=YOUR_PASSWORD \
--name mysql \
--restart always \
mysql:5.7.31
Mongo
$ docker run \
-d \
-p 27017:27017 \
-v /YOUR_PATH/mongo:/data/db \
--name mongo \
--restart always \
mongo:5.0
Postgres
$ docker run \
-d \
-p 5432:5432 \
-e POSTGRES_PASSWORD=YOUR_PASSWORD \
-e PGDATA=/var/lib/postgresql/data/pgdata \
-v /YOUR_PATH/postgres:/var/lib/postgresql/data \
--name postgres \
--restart always \
postgres:12.8
Postgis
$ docker run \
-d \
-p 5432:5432 \
-e POSTGRES_PASSWORD=YOUR_PASSWORD \
-e PGDATA=/var/lib/postgresql/data/pgdata \
-v /YOUR_PATH/postgres:/var/lib/postgresql/data \
--name postgres \
--restart always \
postgis/postgis:12-3.1
执行
CREATE EXTENSION postgis;开启插件
IoTDB
$ docker run \
-d \
-p 6667:6667 \
-p 31999:31999 \
-p 8181:8181 \
--name iotdb \
--restart always \
apache/iotdb:0.13.0-node
RabbitMQ
$ docker run \
-d \
-p 5672:5672 \
-p 15672:15672 \
-p 25672:25672 \
-e RABBITMQ_DEFAULT_USER=YOUT_USERNAME \
-e RABBITMQ_DEFAULT_PASS=YOUR_PASSWORD \
--name rabbitmq \
--restart always \
rabbitmq:3.8-management
开启 RabbitMQ Delayed Message Plugin
下载插件
$ wget https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/v3.8.0/rabbitmq_delayed_message_exchange-3.8.0.ez拷贝插件到容器
$ docker cp path/rabbitmq_delayed_message_exchange-3.8.0.ez $CONTAINER_ID:/plugins启用插件
$ docker exec -it $CONTAINER_ID /bin/bash $ rabbitmq-plugins enable rabbitmq_delayed_message_exchange $ rabbitmq-plugins list
Elasticsearch
$ docker run \
-d \
-p 9200:9200 \
-p 9300:9300 \
-v /YOUR_PATH/elasticsearch/data:/usr/share/elasticsearch/data \
-e "discovery.type=single-node" \
-e "http.cors.enabled=true" \
-e "http.cors.allow-origin=*" \
-e "http.cors.allow-headers=*" \
-e "http.cors.allow-credentials=true" \
--name elasticsearch \
--restart always \
--memory 1G \
--memory-swap -1 \
elasticsearch:7.11.2
/YOUR_PATH/elasticsearch/data在 Centos 系统下 需要1000:1000权限
Filebeat
$ docker run \
-d \
-v /YOUR_PATH/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml \
-v /YOUR_PATH/logs:/var/log \
--name filebeat \
--restart always \
elastic/filebeat:7.11.2
Nacos
$ docker run \
-d \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=MYSQL_IP \
-e MYSQL_SERVICE_PORT=MYSQL_PORT \
-e MYSQL_SERVICE_DB_NAME=MYSQL_DATABASE \
-e MYSQL_SERVICE_USER=MYSQL_USERNAME \
-e MYSQL_SERVICE_PASSWORD=MYSQL_PASSWORD \
-e MYSQL_SERVICE_DB_PARAM='characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC' \
-e MYSQL_DATABASE_NUM=1 \
-v /YOUR_PATH/nacos/standalone-logs:/home/nacos/logs \
--name nacos \
--restart always \
nacos/nacos-server:v2.1.0
ZooKeeper
$ docker run \
-d \
-p 2181:2181 \
--name zookeeper \
--restart always \
wurstmeister/zookeeper
Kafka
$ docker run \
-d \
-p 9092:9092 \
-e KAFKA_BROKER_ID=0 \
-e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://YOUR_IP:9092 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
--link zookeeper \
--name kafka \
--restart always \
wurstmeister/kafka
