docker

184 阅读3分钟

清除所有容器

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

Dockers 安装

# 安装 Centos上安装docker或者用aqt
$ 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

#查询容器
docker ps
设置开机启动

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

docker拉去mysql

# 查看可用版本
docker search mysql

![1.png](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/01ff2e77626f4291ba3c6be4a5cc309a~tplv-k3u1fbpfcp-watermark.image?)
# 拉去镜像
docker pull mysql:latest

![2.png](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/24d7859177c8438db4d387c534834752~tplv-k3u1fbpfcp-watermark.image?)
# 查看本地镜像
 docker images

![3.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/0f6534e4d27a438dbe7102e55ba1c283~tplv-k3u1fbpfcp-watermark.image?)
# 运行容器
-   **-p 3306:3306** :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
-   **MYSQL_ROOT_PASSWORD=123456**:设置 MySQL 服务 root 用户的密码。
docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

![4.png](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/6bf79a044c954fb7a8cbec0fcaca11e3~tplv-k3u1fbpfcp-watermark.image?)
# 查看安装成功
docker ps

![5.png](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/640def6f40334ca7b889b0a9ab12fad9~tplv-k3u1fbpfcp-watermark.image?)
# 登录mysql

![6.png](https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/cc0f77d8e2144285952127f0fb2dc07f~tplv-k3u1fbpfcp-watermark.image?)

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

#服务器登录
mysql -u root - p 123456
mysql -h 127.0.0.1 -u root -p 123456
mysql -h localhost -u root -p 123456
# 创建数据库
GBK: create database test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
UTF8: CREATE DATABASE `test2` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
#数据库MySQL操作
show databases;
use 数据库名;
show tables;
#服务器执行sql文件
source + sql文件绝对路径

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