学习搭建k8s第一天(先熟悉一下docker)

274 阅读2分钟

基础环境搭建以及安装docker

  • 安装vmware,安装linux7.9版本
  • ssh root@192.168.194.128(我自己的电脑虚机)
  • 查看系统版本 uname -a
  • 查看内核版本 cat /etc/redhat-release
  • 添加yum源:
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  • 安装epel源 yum install epel-release -y
  • 安装yum工具 yum install -y yum-utils
  • 记录一个问题 rm -f  /etc/yum.repos.d/epel.repo
  • 配置config
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • XFS文件系统管理工具的版本太低可能会导致启动报错
Error while creating filesystem xfs on device docker-253:0-1052028-base: exit status 1  storage-driver=devicemapper
ERRO[2020-05-14T11:04:27.731045626+08:00] [graphdriver] prior storage driver devicemapper failed: exit status 1 
Error starting daemon: error initializing graphdriver: exit status 1
yum update xfsprogs -y
  • 搜索一下yum可以安装的docker-ce版本 yum list docker-ce --showduplicates | sort -r
  • 安装指定版本 sudo yum install -y docker-ce-19.03.9-3.el7
  • 配置docker的下载源后启动docker并且设置开机自启
  • vi /etc/docker/daemon.json
{
        "graph": "/data/docker",
        "insecure-registries": ["registry.access.redhat.com","quay.io"],
        "registry-mirrors": ["http://hub-mirror.c.163.com"],
        "exec-opts": ["native.cgroupdriver=systemd"],
        "live-restore": true
}
  • 设置开机自动启动

  • systemctl start docker

  • systemctl enable docker

  • systemctl status docker

  • docker run hello-world 注册dockerhub

  • dockerhub.com 去注册你的docker仓库

  • 在自己的机器上 docker login docker.io

  • docker搜索可用镜像 docker search apline

  • docker拉取镜像 docker pull apline

  • 打标签 docker tag 镜像ID 地址/仓库名/镜像名:版本号

  • docker push 地址/仓库名/镜像名:版本号

  • docker ps -a 列出所有的容器

  • 进入容器内部 docker exec -ti 容器ID /bin/sh

  • 容器启动停止重启 docker start 容器ID docker stop 容器ID docker restart 容器ID

  • 删除容器 docker rm -f

  • 遍历宿主机上所有已经退出的容器然后删除掉

for i in `docker ps -a | grep -i exit| awk '{print $1}'`;do docker rm -f $i;done
  • 容器中如果有调整需要进行提交 docker commit -p 容器ID/容器名称 新的名称:版本 此时就产生了一个新的镜像
  • 导出镜像 docker save -o xxx.tar 镜像ID(如果你指定镜像名的话他会吧该镜像的所有版本都打入到.tar中所以最好是指定镜像名:版本号)
  • 导入镜像 docker load -i xxx.tar 需要自己tag一下
  • docker logs -f 容器ID

docker拉取一个nginx

  • docker pull nginx:1.12.2
  • docker run --rm --name mynginx -d -p81:80 nginx:1.12.2
  • 查看一下81端口在宿主机上有没有被使用 netstat -luntp | grep 81
docker run --name mynginx_baidu -d -p82:80 -v /data/nginx/html:/usr/share/nginx/html nginx:1.12.2
  • docker分析命令 inspect
  • 传递环境变量是 -e
  • 容器内部安装curl