docker/kubernetes学习笔记(持续更新)

1 篇文章 0 订阅
1 篇文章 0 订阅

docker

安装
Linux
Windows 10
基础命令
#
docker --help
docker -h
docker run --help # 只能用 --help
docker images --help # 只能用 --help

容器
#
docker ps # 查看正在运行的容器
docker ps -a # 查看所有状态容器
# 从镜像中运行容器
docker run -itd --name test10 -h localhost test:1.0 # 需要有 test:1.0 这个镜像
docker inspect test10
docker inspect <容器ID|容器名称|镜像ID|镜像名称> # 查看镜像/容器详细信息
# 删除所有容器
docker rm -f $(docker ps -aq)

# 设置在docker服务重启时,容器自动启动(默认服务重启,容器就退出关闭,不会自动拉起)
# 1。docker run 时加入 --restart=always 参数
# 2。docker update --restart=always <container_name>

镜像

Docker 镜像加速

  • 创建或修改 /etc/docker/daemon.json 文件
{
  "registry-mirrors": [
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn"
  ]
}

  • 镜像地址
    • Docker中国区官方镜像:https://registry.docker-cn.com
    • 网易:http://hub-mirror.c.163.com
    • ustc:https://docker.mirrors.ustc.edu.cn
    • 中国科技大学:https://docker.mirrors.ustc.edu.cn
  • 阿里云容器生成自己的加速地址
# 
docker images
# 镜像导入、导出
docker save centos:centos7.6.1810 > centos7.6.tar
docker save myimage:latest | gzip > myimage_latest.tar.gz
docker load -i centos7.6.tar
docker load < centos7.6.tar

docker export test:1.0 > test.tar
docker import < test.tar

docker inspect <容器ID|容器名称|镜像ID|镜像名称> 

docker tag <原镜像名称> <新tag名称> # 给镜像创建tag,push时前缀需要和仓库地址符合
# 给镜像添加tag
docker tag centos7.6_aliyun_repo_pip2_paramiko:1.0 jhchang/centos7.6_aliyun_repo_pip2_paramiko:1.0
# push 镜像到 docker.io/jhchang 仓库(jhchang为docker hub 用户名)
# push 需要先 docker login 登陆docker hub
docker login
docker push jhchang/centos7.6_aliyun_repo_pip2_paramiko:1.0

仓库
# 查询
docker search centos
docker pull search centos:centos7.6.1810
docker push centos # 需要登陆 docker hub 账户才可以 push

搭建私人仓库
  • 1、docker 官方镜像搭建(没有访问控制、镜像管理等功能)
# 下载镜像
docker pull registry:2
# 运行容器
docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --name myRegistry registry:2

Docker 网络
# 查看网络列表信息
docker network ls
# 说明
# 安装Docker时,会自动创建三个网络:
#   bridge:默认选项(不使用--network参数时),会为每一个容器分配、设置IP等,并将容器连接到一个docker0虚拟网桥,通过docker0网桥以及Iptables nat表配置与宿主机通信
#   none:该模式关闭了容器的网络功能
#   host:容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口

# 也可以指定容器
#   创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围

# 自定义模式有三种:
# bridge
# overlay
# macvlan

配置
Dockerfile
构建跨平台镜像 buildx
# 1。docker版本要求19.03及以上
# 2。开启DOCKER_CLI_EXPERIMENTAL
export DOCKER_CLI_EXPERIMENTAL=enabled
# 3。启用 binfmt (docker desktop默认开启)
docker run --rm --privileged docker/binfmt:66f9012c56a8316f9244ffd7622d7c21c1f6f28d
# 4。新建构建器
docker buildx create --use --name new_builder
# 5。启动构建起
docker buildx inspect new_builder --bootstrap
# 6。查看构建器及其所支持的cpu架构
docker buildx ls
# 7。创建Dockerfile(和正常Dockerfile没区别,FROM需要支持多平台的镜像,只能拉取Dokcer Hub里的镜像构建跨平台镜像)
# 8。构建跨平台镜像
	# 构建的镜像push到Dokcer Hub,pull时会根据架构自动拉取对应镜像
	docker buildx build -t <image name> --platform=linux/arm,linux/arm64,linux/amd64 . --push
	# 如果需要镜像在本地保存,--platform只能指定一种架构
	docker buildx build -t <image name> --platform=linux/arm64 . --load
# 9。导出镜像
docker save -o centos7.9.arm.tar <image name>
# 10。复制导出的镜像去目标机器导入
docker load -i centos7.9.arm.tar
	

Dockerfile 示例(和正常Dockerfile无区别,基础镜像需要是多平台的):

FROM centos:7 # 这个官方镜像是多平台的
RUN yum clean all && yum install python3\
    && pip3 install -i http://pypi.douban.com/simple/ -q requests pyyaml\
    && echo -e "export LANG=en_US.UTF-8" >> ~/.bashrc\
    && mkdir ~/.pip
COPY pip.conf ~/.pip/pip.conf

kubernetes(k8s)

# 查看
kubectl get --help
kubectl get pods --all-namespaces
kubectl get pods -n <namespace>
# 进入 pod(容器)
kubectl exec -it <pod name> -n <namespace> bash

# 查看服务类型(ns/pods/ingress等资源)yaml格式
kubectl explain pods
kubectl explain ingress.spec
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值