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

参考文献


1. Get Docker Engine - Community for CentOSopen in new window

上次编辑于:
贡献者: luke