ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

docker笔记

2022-01-22 12:04:12  阅读:119  来源: 互联网

标签:容器 compose redis 笔记 mysql docker zhoufly


docker 常用地址

docker官方文档
https://www.docker.com/
网易蜂巢查询镜像
https://c.163.com/hub#/home
hub.docker地址
https://hub.docker.com/
#jdk下载
https://mirrors.yangxingzhen.com/jdk/

docker常用命令

#查看docker容器系统
docker system df
#拉取镜像
docker pull 镜像名

#docker commit #commit自己的镜像
公式:docker commit -m="提交描述信息" -a="作者" 容器ID 要创建的目标镜像名称:[标签名]

#docker 交互式运行
公式 docker run -it 镜像ID或容器名 bash
docker run -it zhoufly/ubuntu bash

#docker修改tag
公式: docker tag 镜像:tag Host: Port/Repository:Tag
使用命令将zhoufly/ubuntu:latest这个镜像修改为192.168.179.21:5000/zhoufly/ubunru:1.0
docker tag zhoufly/ubuntu:latest 192.168.179.21:5000/zhoufly/ubunru:1.0

#docker宿主机持久化实例容器文件
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录 镜像名
例:docker run -d -it -v /root/host_data:/docker_data --privileged=true ubuntu:latest bash
默认容器内部可读写文件 :rw ,限制容器为只读 :ro
例:docker run -d -it -v /root/host_data:/docker_data:ro --privileged=true ubuntu:latest bash
容器卷继承 --volumes-form 父类
u2容器继承u1容器的容器卷
例:docker run  -d -it --privileged=true --volumes-from u1 --name u2 ubuntu bash

#docker 构建
docker build -t 新镜像名字:TAG Dockerfile路径

#删除虚悬镜像
docker image prune
#docker 网络命令
docker network 参数
#查看容器配置
docker inspect 容器ID
#创建network
docker network create zhoufly_network
#运行并添加网络
docker run -d --network zhoufly_network --name tomcat1 hub.c.163.com/library/tomcat:8.5

docker安装私服库registry


1.下载registry镜像
docker pull registry
2.运行docker镜像
默认情况,仓库被创建在容器的/var/lib/registry目录下,建议自行用容器卷映射,方便于宿主机联调
docker run -d -p 5000:5000 -v /root/myregistry/:/tmp/registry --privileged=true registry
3.commit镜像
docker commit -m="this add ifconfig" -a="zhoufly" c4d3347682ce zhoufly/ubuntu:latest
4.验证私服库
 curl -XGET http://192.168.179.21:5000/v2/_catalog
5.修改符合需求tag
docker tag zhoufly/ubuntu:latest 192.168.179.21:5000/zhoufly/ubuntu:1.0
6.取消docker安全加固
   vim /etc/docker/daemon.json
  添加
  {
     "registry-mirrors": ["https://81ttfw4u.mirror.aliyuncs.com"],
     "insecure-registries":["192.168.179.21:5000"]
  }
7.推送镜像到私服库
  docker push 192.168.179.21:5000/zhoufly/ubunru:1.0
8.验证是否推送成功
  curl -XGET http://192.168.179.21:5000/v2/_catalog
8.拉取私服镜像
  docker pull 192.168.179.21:5000/zhoufly/ubunru:1.0

docker安装 mysql

 # 运行mysql 挂载容器卷
docker run -d -p 3306:3306 --privileged=true -v /root/mysql/log:/var/log/mysql -v /root/mysql/data:/var/lib/mysql -v /root/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=root  --name mysql mysql:5.7
#编辑mysql my.cnf文件
vim /root/mysql/conf/my.cnf
#配置mysql my.cnf文件
[client]
default-character-set = utf8mb4
[mysqld]
character_set_server = utf8mb4
collation_server = utf8mb4_bin

docker运行redis

docker run -p 6379:6379 --name redis --privileged=true -v /app/redis/redis.conf:/etc/redis/redis.conf -v /app/redis/data:/data -d redis:6.0.8 redis server /etc/redis/redis.conf

Dockerfile

docker-boot-0.0.1-SNAPSHOT.jar 与 Dockerfile 在相同目录执行脚本:

docker build -t zhoufly_boot:1.0 .

Dockerfile文件内容

FROM java:8
#作者
MAINTAINER zhoufly
#VOLUME指定临时文件 目录为/tmp,在主机/var/lib/docker目录下创建了一个临时文件并延续到连接到容器的/tmp VOLUME /tmp

#将jar包添加到容器中并更名为 docker-boot.jar
ADD docker-boot-0.0.1-SNAPSHOT.jar docker-boot.jar
#运行jar包
RUN bash -c 'touch /docker-boot.jar'
ENTRYPOINT ["java","-jar","/docker-boot.jar"]
#暴露服务端口6001
EXPOSE 6001

docker-componse

快速下载地址:


curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
官网地址:https://docs.docker.com/compose/install/

常用命令:

docker-compose -h #查看帮助
docker-compose up #启动所有docker-compose服务
docker-compose up -d #后台启动所有docker-compose服务
docker-compose down #停止并删除容器,网络,卷,镜像
docker-compose exec yml里面服务id  #进入容器实例内部 docker-compose exec docker-compose.yml文件中写的服务id /bin/bash
docker-compose ps #展示当前docker-compose编排过的运行的所有容器
docker-compose top #展示当前docker-compose编排过的容器进程
docker-compose logs yml里面的服务id #查看容器输出日志
docker-compose config #检查配置
docker-compose config -q #检查配置,有问题才输出
docker-compose restart #重启服务
docker-compose start #启动服务
docker-compose stop #停止服务

样例内容容下:

version: "3"
services:
microService:
  image: zhoufly_boot:1.0
  container_name: ms01
  ports:
    - "6001:6001"
  volumes:
    - /app/microService:/data
  networks:
    - zhoufly_net
  depends_on:
    - redis
    - mysql
redis:
  image: redis:6.0.8
  container_name: redis01
  ports:
    - "6379:6379"
  volumes:
    - /app/redis/redis.conf:/etc/redis/redis.conf
    - /app/redis/data:/data
  networks:
    - zhoufly_net
  command: redis-server /etc/redis/redis.conf

mysql:
  image: mysql:5.7
  container_name: mysql01
  environment:
    MYSQL_ROOT_PASSWORD: 'root'
    MYSQL_ALLOW_EMPTY_PASSWORD: 'no'
    MYSQL_DATABASE: 'test'
  ports:
    - "3306:3306"
  volumes:
    - /app/mysql/db:/var/lib/mysql
    - /app/mysql/conf/my.cnf:/etc/my.cnf
    - /app/mysql/init:/docker-entrypoint-initdb.d
  networks:
    - zhoufly_net
  command: --default-authentication-plugin=mysql_native_password #解决外部无法访问

networks:
zhoufly_net:

 

portainer

官网: https://www.portainer.io/

安装portainer

-d #容器在后台运行

-p 9000:9000 # 宿主机9000端口映射容器中的9000端口

-v /var/run/docker.sock:/var/run/docker.sock # 把宿主机的Docker守护进程(docker daemon)默认监听的Unix域套接字挂载到容器中

-v /root/portainer:/data # 把宿主机目录 /root/portainer 挂载到容器 /data 目录;

–name dev-portainer # 指定运行容器的名称

注意: 在启动容器时必须挂载本地 /var/run/docker.socker与容器内的/var/run/docker.socker连接。



docker run -d -p 8000:8000 -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

CAdvisor+InfluxDB+Granfana

 

version: '3.1'

volumes:
grafana_data: {}

services:
influxdb:
  image: tutum/influxdb:0.9
  restart: always
  environment:
    - PRE_CREATE_DB=cadvisor #预设数据库
  ports:
    - "8083:8083"  #外部端口
    - "8086:8086"  #内部端口
  volumes:
    - /data/influxdb:/data
cadvisor:
  image: google/cadvisor
  links:
    - influxdb:influxsrv
  command: -storage_driver=influxdb -storage_friver_db=cadvisor -storage_driver_host=influxsrv:8086
  restart: always
  ports:
    - "8080:8080"
  volumes:
    - /:/rootfs:ro
    - /var/run:/var/run:rw
    - /sys:/sys:ro
    - /var/lib/docker/:/var/lib/docker:ro
grafana:
  user: "104"
  image: "grafana/grafana"
  restart: always
  links:
    - influxdb:influxsrv
  ports:
    - "3000:3000"
  volumes:
    - grafana_data:/var/lib/grafana
  environment:
    - HTTP_USER=admin
    - HTTP_PASS=admin
    - INFLUXDB_HOST=influxsry
    - INFLUXDB_PORT=8086
    - INFLUXDB_NAME=cadvisor
    - INFLUXDB_USER=root
    - INFLUXDB_PASS=root

 

标签:容器,compose,redis,笔记,mysql,docker,zhoufly
来源: https://www.cnblogs.com/zhoufly-blog/p/15832739.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有