CKA第一周

在这里插入图片描述

https://kubernetes.io/
http://docs.kubernetes.org.cn/ !!!!!
默认拉取位置     hub.docker.com  

配置加速

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json << EOF
    {
      "registry-mirrors":     ["https://fcafe5rl.mirror.aliyuncs.com"], #镜像加速
      "data-root": "/data"   #指定容器挂载卷的路径
    }
    EOF
sudo systemctl daemon-reload;sudo systemctl restart docker

命令

man -k  docker

总结:在docker中有很多种资源,比如network、container、image、volume,我们可以用的语法为
docker 类型 inspect 容器名

镜像命令

dockerd --help
• 镜像的命名方式 • docker pull 镜像
• docker tag 镜像 • docker rmi 镜像
• docker save 镜像名 > filename.tar 导出全部镜像用空格分隔
• docker load -i filename.tar 导入镜像
• 把容器导出为镜像 docker export 容器名 > filename.tar
• 导入 cat filename.tar | docker import - 镜像名
–no-trunc 可以显示完整的内容
• docker history 192.168.26.100/nginx:v1 --no-trunc |head -2 显示详细的信息 不截断
• docker volume list 查看容器卷列表
• docker volume create v1 然后创建容器的时候冒号左边用 v1:/user/share
• docker volume inspect v1
• docker cp 容器名:文件路径 想要放的路径

导出所有镜像

[root@vms101 ~]# cat save_all_images.sh 
#! /bin/bash
imagename=$(docker images|grep -v TAG|awk '{print $1":"$2}'|tr '\n' ' ')
docker save $imagename > all.tar

容器命令

• docker  run -ti -d --restart=always --name=c1 -p 8088:80  -e 变量设置 -v /web:/use/share/nginx/config/  centos   sleep 10000
--restart=always
-ti
-d  detach  he attach 正好相反,不加d默认attach进入容器
-e 
-p  指定端口  -p 80 代表宿主机随机端口到容器80端口  -p  8088:80 代表宿主机8088端口到容器80端口  -P
-v  默认/web:/use/share/:wr  读写   冒号左边是宿主机  默认  :容器目录
--name=c1
• docker exec -it 容器 bash    #也是进入容器
• pdocker attach 容器  #进入正在运行的容器  进入看起来卡住说明里面没有运行/bin/bash  用docker exec -it 容器 bash 进入
• docker  logs 容器名   #查看容器运行日志
• docker inspect 容器名   #查看容器详细信息   
• docker  run  -dit --name=db  --restart=always -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_USER=bianmc -e MYSQL_PASSWORD=123456 -e MYSQL_DATABASE=aaa   hub.c.163.com/library/mysql
[root@vms101 ~]# docker  top c1
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                22753               22734               3                   16:02               pts/0               00:00:00            /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 10000

应用程序常用的目录

mysql —/var/lib/mysql
apache —/var/www/html
nginx —/usr/share/nginx/html

网络

模式 bridge

docker network create --driver=bridge  --subnet=10.0.0.0/16 bianmc
docker network list
docker inspect c1|grep -i ipadd
docker network rm  bianmc

模式 host

docker run -it  --rm --network=host  busybox

模式 none 一般用于测试

docker run -it --name=c3 --link=c1:xxx --restart=always  busybox

–link=c1:xxx 给c1这个容器起一个别名xxx,在c3里可以通过xxx这个名字直接来访问c1,相当于修改host c1的ip指定到xxx

WORDPRESS

docker run -dit --restart always --name mysql -v /db:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=wordpress -e MYSQL_USER=wordpress -e MYSQL_PASSWORD=wordpress hub.c.163.com/library/mysql

docker run -dit --name blog --restart always --link mysql -v /blog:/var/www/html -p 80:80   -e WORDPRESS_DB_USER=wordpress -e WORDPRESS_DB_PASSWORD=wordpress -e WORDPRESS_DB_NAME=wordpress hub.c.163.com/library/wordpress
WORDPRESS_DB_HOST=mysql  可以删除,因为--link到了同一个网络

创建镜像

方式一:

• docker commit -a "aa" -m "bb" 6a785f2adc9d test:v2 
• -a 作者信息, -m 提交信息 , id 是容器id , 最后是到处镜像名 docker history xxxx

方式二: Dockerfile

FROM centos:latest
MAINTAINER bianmc   # 作者
RUN yum install nginx -y && \     #换行格式
        useradd tom
ENV aa xxx    # 设置变量
ADD adas.tar.gz  /usr/share/nginx/html   #ADDCOPY的区别就是ADD会自动解压压缩文件
ADD index.html  /usr/share/nginx/html
VOLUME ["/data1"]    #创建目录卷
USER tom  #进入容器时的选择用户      docker命令进入时可以--u root指定 root用户进入
EXPOSE 80   #备注端口号
CMD ["nginx","-g","daemon off;"]
docker build --tag  centos:v1 .      #构建镜像

构建ssh镜像

FROM hub.c.163.com/library/centos:latest
MAINTAINER bianmc
RUN echo  haha001 |passwd --stdin root
RUN yum install  openssh-clients openssh-server -y   && \
        rm -rf  /var/cache/yum/x86_64/*  && \
        yum clean all  && \
        ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key  && \
        ssh-keygen -t rsa -f /etc/ssh/ssh_host_ecdsa_key  && \
        ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key && \ 
        sed -i '/UseDNS/cUseDNS no'  /etc/ssh/sshd_config


EXPOSE 22
CMD ["/usr/sbin/sshd","-D"]

私有仓库 registry

启动仓库容器

docker run -dit --name myrey --restart always -p 5000:5000  -v /myreg:/var/lib/registry hub.c.163.com/library/registry

修改docker拉取和推送配置 每个都要修改

方法一:

vim /etc/docker/daemon.json
{
        "registry-mirrors": ["https://fcafe5rl.mirror.aliyuncs.com"],
        "data-root": "/data",
        "insecure-registries": ["192.168.26.101:5000"]
}
systemctl daemon-reload ; systemctl restart docker

方法二:

systemctl status docker  查询启动脚本
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
修改为  vim  /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --insecure-registry 192.168.26.101:5000  -H fd:// --containerd=/run/containerd/containerd.sock
--insecure-registry 192.168.26.101:5000 
systemctl daemon-reload ; systemctl restart docker

修改镜像名 和内部仓库一致

docker  tag   需要名的容器    192.168.26.101:5000/容器名
#docker   push   192.168.26.101:5000/容器名

带验证 !!删除本地镜像

systemctl stop docker.socket
rm -rf  /var/lib/docker/*
systemctl start docker

脚本查看有多少镜像

yum install -y  jq
vim  images_check.sh
    #!/bin/bash 
    file=$(mktemp) 
    curl -s $1:5000/v2/_catalog | jq | egrep -v '\{|\}|\[|]' | awk -F\" '{print $2}' > $file 
    while read aa ; do 
    tag=($(curl -s $1:5000/v2/$aa/tags/list | jq | egrep -v '\{|\}|\[|]|name' | awk -F\"     '{print $2}')) 
            for i in ${tag[*]} ; do 
            echo $1:5000/${aa}:$i 
            done 
    done < $file 
    rm -rf $file

chmod +x images_check.sh 
./images_check.sh 192.168.26.101

脚本删除本地仓库镜像

分享名称:delete_docker_registry_image
分享链接:https://www.bianminchang.com/#s/75e_-4uA

下载文件包并解压

分享名称:harbor-offline-installer-v2.3.5.tgz
分享链接:https://www.bianminchang.com/#s/75fKdJTA
访问密码:dSYZq

加载镜像

docker load -i harbor.v2.3.5.tar.gz

修改配置文件并使其生效

cp harbor.yml.tmpl harbor.yml
vim harbor.yml
    hostname: 192.168.26.101
    # https的内容全注释
    # 设置密码
    harbor_admin_password: Harbor12345 

生效

./prepare

安装

./install.sh
访问192.168.26.101  账号admin密码Harbor12345

push 需要先登入

docker login  192.168.26.101 -ubianmc -pAa123456
    Login Succeeded
docker push 192.168.26.101/cka/centos   #需要特定的名称

pull 直接去页面复制就行

报错 如果发现密码正确也无法登入的情况,进入harbor安装目录运行

docker-compose stop
docker-compose up -d

版权声明:本文为weixin_45081220原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。