Docker

安装

> https://docs.docker.com/engine/install/centos/
$ sudo yum install -y yum-utils
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
$ sudo yum install docker-ce docker-ce-cli containerd.io
  • 修改默认存储位置
# 1.软链接
systemctl stop docker
mv /var/lib/docker /data/lib/docker
ln -s /data/lib/docker /var/lib/docker

# 2. 修改启动参数(centos)
vi /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --graph /data/lib/docker
systemctl daemon-reload

# 3. 修改配置文件
tee /etc/docker/daemon.json << 'EOF'
{
    "registry-mirrors": ["https://8wlyegdb.mirror.aliyuncs.com"],
    "graph": "/data/lib/docker"
}
EOF
systemctl daemon-reload

# 4. 增加配置
tee /etc/systemd/system/docker.service.d/docker.conf << 'EOF'
[Service] 
ExecStart=/usr/bin/dockerd --graph="/mnt/new_volume" --storage-driver=devicemapper
EOF
systemctl daemon-reload

Docker 日志

日志驱动

none        容器不输出任何日志
json-file   以json格式写入文件
syslog      写入宿主机的Syslog中
journald    写入宿主机的Journald
fluentd     写入宿主机的Fluentd
gelf        以GELF格式写入GrayLog
awslogs     写入aws CloudWatch Logs
splunk      写入Splunk中
etwlogs     写入etw中(Event Tracing for windows)
gcplogs     写入Google cloud platform
nats        写入NATS服务器
  • 启动时指定
docker run -d --name nginx \
  --log-drriver json-file \
  --log-opt max-size=100m \
  --log-opt max-file=5 \
  nginx
  • 设置日志驱动
    tee /etc/docker/daemon.json << 'EOF'
    {
    "log-driver": "json-file",
    "log-opts": {
      "max-size": "100m",
      "max-file": "3",
      "labels": "production_status",
      "env": "os,customer"
    }
    }
    EOF
    

其他

  • 批量清理临时镜像文件
docker rmi $(docker images -q -f dangling=true)
docker rmi -f $(docker images | grep "<none>" | awk "{print \$3}")
docker rmi -f $(docker images | grep "month" | awk "{print \$3}")
docker rmi -f $(docker images | grep "week" | awk "{print \$3}")
  • 查看镜像支持的环境变量
docker run IMAGE env

常用镜像(单机版)

  • MySQL
docker run -d --name mysql \
  -p 3306:3306 \
  -e MYSQL_ROOT_PASSWORD=123456 \
  -v `pwd`/conf.d:/etc/mysql/conf.d \
  -v `pwd`/data:/var/lib/mysql \
  --restart always \
  mysql:8.0

# my.cnf
[mysqld]
datadir=/var/lib/mysql
default-time_zone = '+8:00'
  • Redis
docker run -d --name redis \
  -p 6379:6379 \
  redis:5.0.9 \
  --requirepass "123456"
  • nginx
docker run -d --name nginx \
  -p 80:80 -p 443:443 \
  -v `pwd`/conf.d:/etc/nginx/conf.d \
  -v `pwd`/logs:/var/log/nginx \
  -v `pwd`/data:/data \
  -restart always \
  nginx:1.9
  • rabbitmq
docker run -d --name rabbitmq \
    -p 15672:15672 \
    -p 5672:5672 \
    -e RABBITMQ_DEFAULT_USER=admin \
    -e RABBITMQ_DEFAULT_PASS=admin \
    --restart always \
    rabbitmq:3.8.4-managemnet
  • InfluxDB

    docker run -d --name influxdb \
      -p 8086:8086 \
      -v `pwd`/db:/var/lib/influxdb \
      influxdb
    
  • Grafana

  • cAdvisor

  • Zipkin

    docker run -d --name zipkin \
      -p 9411:9411 \
      openzipkin/zipkin
    
  • MongoDB

  • ElasticSearch

docker run -d --name es \
    -p 9200:9200 \
    -p 9300:9300 \
    -v `pwd`/data:/usr/share/elasticsearch/data \
    -v `pwd`/logs:/usr/share/elasticsearch/logs \
    -v `pwd`/readonlyrest.yml:/usr/share/elasticsearch/config/readonlyrest.yml \
    -e "discovery.type=single-node" \
    -e "cluster.name=es-docker-cluster" \
    -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
    -e "TZ=Asia/Shanghai" \
    --restart always \
    elasticsearch:7.7.0

> readonlyrest.yml
readonlyrest:
    access_control_rules:
        - name: "Require HTTP Basic Auth"
    type: allow
    auth_key: admin:123456
  • LogStash
docker run -d --name logstash \
    -p 5000:5000 \
    --link es:es \
    -v `pwd`/logstash.yml:/usr/share/logstash/config/logstash.yml \
    -v `pwd`/logstash.conf:/usr/share/logstash/pipeline/logstash.conf \
    logstash:7.7.0

> logstash.yml
http.host: "0.0.0.0"
xpack.monitoring.enabled: false
xpack.monitoring.elasticsearch.hosts: ["http://es:9200"]

> logstash.conf
input {
  stdin{
  }
  syslog{
    type => "rsyslog"
    port => 4560
  }
}
output{
  stdout{
  }
  elasticsearch{
    hosts => ["es:9200"]
    user => "admin"
    password => "123456"
  }
}
  • Kibana
docker run -d --name kibana \
    -p 5601:5601 \
    --link es:es \
    -e "ELASTICSEARCH_URL=http://es:9200" \
    -e "ELASTICSEARCH_USERNAME=admin" \
    -e "ELASTICSEARCH_PASSWORD=123456" \
    -e "TZ=Asia/Shanghai" \
    kibana:7.7.0
  • Nacos
    docker run -d --name nacos \
      --link mysql:mysql \
      -p 8848:8848 \
      -p 9555:9555 \
      -v `pwd`/mysql:/home/nacos/plugins/mysql \
      -v `pwd`/logs:/home/nacos/logs \
      -v `pwd`/custom.properties:/home/nacos/init.d/custom.properties \
      -e PREFER_HOST_MODE=hostname \
      -e MODE=standalone \
      -e SPRING_DATASOURCE_PLATFORM=mysql \
      -e MYSQL_SERVICE_HOST=mysql \
      -e MYSQL_SERVICE_DB_NAME=nacos_dev \
      -e MYSQL_SERVICE_PORT=3306 \
      -e MTSQL_SERVICE_USER=root \
      -e MYSQL_SERVICE_PASSWORD=123456
      nacos/nacos-server:latest
    
Copyright © axboy.cn 2019 all right reserved,powered by Gitbook该文件修订时间: 2020-07-27 03:53:54

results matching ""

    No results matching ""