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
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
K8S