docker

274 阅读2分钟

清除所有容器

docker rm -f `docker ps -a -q`

Dockers 安装

# 安装 Centos上安装docker
$ sudo yum install docker
# 启动
systemctl start docker
# 查看版本
docker version
# 加速器
vi /etc/docker/daemon.json
"registry-mirrors":["https://cr.console.aliyun.com"]
"registry-mirrors":["https://mj9kvemk.mirror.aliyuncs.com"]  
systemctl daemon-reload 
systemctl restart docker
设置开机启动

systemctl enable docker.service

关闭开机启动

systemctl disable docker.service

Docker-compose 安装

安装 & 卸载

# 下载镜像
$ sudo curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# 加权限
$ sudo chmod +x /usr/local/bin/docker-compose
# 验证是否成功安装
$ docker-compose version

常用命令

# 清除
docker-compose down 
# 运行
docker-compose up -d

Github

gitlab:
  image: twang2218/gitlab-ce-zh
  container_name: gitlab
  restart: always
  privileged: true
  hostname: '192.168.0.109'
  environment:
    GITLAB_OMNIBUS_CONFIG: |
      external_url "http://192.168.0.109"
      gitlab_rails['gitlab_shell_ssh_port'] = 2222
      nginx['listen_port'] = 9090
  ports:
    - '9090:9090'
    - '2222:22'
  volumes:
        - ./config:/etc/gitlab
        - ./data:/var/opt/gitlab
        - ./logs:/var/log/gitlab

mysql

mysqlname:
  restart: always
  image: mysql:5.7.22
  container_name: mysql
  ports:
    - 3306:3306
  environment:
    TZ: Asia/Shanghai
    MYSQL_ROOT_PASSWORD: 123456
  command:
    --character-set-server=utf8mb4
    --collation-server=utf8mb4_general_ci
    --explicit_defaults_for_timestamp=true
    --lower_case_table_names=1
    --max_allowed_packet=128M
    --sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"
  volumes:
    - ./data:/var/lib/mysql

固定IP

vi /etc/sysconfig/network-scripts/ifcfg-ens33

BOOTPROTO=static

IPADDR=192.168.95.128
NETMASK=255.255.255.0
GATEWAY=192.168.95.2

#DNS文件配置
vi /etc/resolv.conf 
nameserver 8.8.8.8
nameserver 8.8.4.4

然后重启网络:service network restart

Skywalker -docker-compose.yml

version: '3.3'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.4.3
    container_name: elasticsearch
    restart: always
    ports:
      - 9200:9200
      - 9300:9300
    environment:
      discovery.type: single-node
    ulimits:
      memlock:
        soft: -1
        hard: -1
  oap:
    image: skywalking/oap
    container_name: oap
    depends_on:
      - elasticsearch
    links:
      - elasticsearch
    restart: always
    ports:
      - 11800:11800
      - 12800:12800
    environment:
      SW_STORAGE: elasticsearch
      SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200
  ui:
    image: skywalking/ui
    container_name: ui
    depends_on:
      - oap
    links:
      - oap
    restart: always
    ports:
      - 8080:8080
    environment:
      SW_OAP_ADDRESS: oap:12800

Nginx

负载均衡+静态资源+域名映射

version: '3.1'
services:
  nginx:
    restart:  always
    image: nginx
    container_name: nginx
    ports:
      - 80:80
      - 8080:8080
    volumes:
      - ./conf/nginx.conf:/etc/nginx/nginx.conf
      - ./html:/usr/share/nginx/html
  tomcat1:
    image: tomcat
    container_name: tomcat1
    volumes:
      - ../tomcat1:/usr/local/tomcat/webapps
  tomcat2:
    image: tomcat
    container_name: tomcat2
    volumes:
      - ../tomcat2:/usr/local/tomcat/webapps

目录结构

nginx.conf

文件要提前创建要不然启动的时候会认为是目录


worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    client_header_buffer_size 2k;
#    反向代理
    upstream tomcatServer1 {
#   负载均衡
         server tomcat1:8080;
         server tomcat2:8080;
    }
    server {
        listen       80;
        #   域名映射
        server_name  service1.funtl.com;
        location / {
            proxy_pass http://tomcatServer1;
            index  index.html index.htm;
        }
    }
    #   静态资源
    server {
        listen       80;
        server_name  service2.funtl.com;
        location / {
            root   /usr/share/nginx/html/html81;
            index  index.html index.htm;
        }
    }
}

Tomcat

version: '3.1'
services:
  tomcat:
    restart: always
    image: tomcat
    container_name: tomcat
    ports:
      - 8080:8080
    volumes:
      - /usr/local/docker/web/:/usr/local/tomcat/webapps
    #  时间同步
    environment:
      TZ: Asia/Shanghai

mysql

  mysqlname:
    restart: always
    image: mysql:5.7.22
    container_name: mysqlname
    ports:
      - 3306:3306
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: 123456
    command:
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      --lower_case_table_names=1
      --max_allowed_packet=128M
      --sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"
    volumes:
      - mysql-data:/var/lib/mysql

运行jar

  gateway2:
    restart:  always
    image: ascdc/jdk8
    container_name: gateway2
    ports:
      - 9000:9000
    volumes:
      - /mnt/docker/web/gateway/service-gateway-1.0.0-SNAPSHOT.jar:/data/service-gateway-1.0.0-SNAPSHOT.jar
    entrypoint: java -jar /data/service-gateway-1.0.0-SNAPSHOT.jar