夜间模式暗黑模式
字体
阴影
滤镜
圆角
主题色
Docker && kubernetes 常用命令
docker pull  软件:版本号
docker pull  python:3.6.9  3.6.9版本的python
docker pull  openjdk:8  openjdk1.8   

#启动3.6.9(并进入bash中)
docker run -it --entrypoint bash python:3.6.9












/data/docker/sql-training/build-image
docker-compose exec sql-clinet ./sql-client.sh
docker-compose up -d
docker-compose ps
docker-compose down




git clone --branch release-1.9 https://github.com/apache/flink-playgrounds.git
cd flink-playgrounds/
cd operations-playground/
docker-compose build
docker-compose up -d
docker-compose ps
docker-compose down


查看命令:
docker ps  查看已经运行的任务
docker ps -a 查看所有的docker任务
docker ps -l 列出最近创建的docker
docker ps -n=2 列出最后创建的2个容器

启动命令:
docker start 任务名称/任务ID   启动已经启动过的任务

重启命令:
docker run --restart=always --name 任务名称 -d centos /bin/sh -c "while true; do echo hello world; sleep;done"
--restart=always:不管容器返回是什么,都会重启容器。
--restart=on-failure:5  当容器返回值非0时进行重启。 5是重启的次数

关闭命令:
docker stop 任务名称/任务ID  将容器退出
docker kill 任务名称/任务ID

删除命令:
docker rm 任务名称/任务ID  注意:不能删除一个正在运行的任务。
docker rm 'docker ps -a -q'  删除全部的docker容器 -a显示全部的容器  -q只列出容器的ID



使用Dockerfile定制镜像

FROM 指定基础镜像
FROM python    (scratch) 表示一个虚拟的镜像



RUN 执行命令  
每一个 RUN 的行为,就和刚才我们手工建立镜像的过程一样:新建立一层,在其上执行这些命令,执行结束后,commit 这一层的修改,构成新的镜像。
RUN echo '<h1>Hello,Docker!' > /usr/share/nginx/html/index.html
RUN yum install vim 
RUN mkdir -p /data/zsj   
可以使用下列写法:
RUN echo '<h1>Hello,Docker!' > /usr/share/nginx/html/index.html \
&& yum install vim \
&& mkdir -p /data/zsj


镜像构建上下文(Context)



FROM python:3.6.9
MAINTAINER xxx xxx@163.com
RUN pip install thrift
docker build -t python-base:latest -f Dockerfile.base . 打包一个docker镜像。


FROM python-bash:latest
MAINTAINER xxx xxx@163.com
ENV PYTHONPATH / 
COPY message /message
ENTRYPOINT ["python","/message/message_service.py"]

docker build -t message-service:latest .  指定当前目录的Dockerfile 就可以了。



FROM openjdk:7-jre
MAINTAINER xxx xxx@163.com
COPY tar/xxx.jar  /xxx.jar
ENTRYPOINT ["java","-jar","/user-edge-service.jar"]


docker run -it message-service:latest 




docker-compose.yml 

version: '3'

service:
    message-service:
        image: message-service:latest

    user-service:
        image: user-service:latest
        command:
        - "--mysql.address=192.168.1.7"

    user-edge-service:
        image: user-edge-service:latest
        links:
        - user-service
        - message-service
    api-gateway-zuul:
        image:api-geteway-zuul:latest
        links:
        - user-edge-service
        - course-edge-service
        ports:
        - 8080:8080

docker-compose up -d



共有仓库镜像上传:
docker tag zookeeper:3.5  imooc/zookeeper:3.5
docker push imooc/zookeeper:3.5
docker login   登陆仓库
输入用户名密码


私有仓库安装:
registry  docker

docker pull registry:2  
docker run -d -p 5000:5000 registry:2

上传私有仓库
docker tag zookeeper:3.5 localhost:5000/zookeeper:3.5
docker push localhost:5000/zookeeper:3.5

下载私有仓库
docker pull localhost:5000/zookeeper:3.5



搭建harbor

下载harbor github 
wget https://github.com/goharbor/harbor/releases/download/v1.9.3/harbor-offline-installer-v1.9.3.tgz
tar -xf harbor-offline-installer-v1.9.3.tgz
cd harbor
vim harbor.cfg
hostname = 192.168.3.25:8080


sed -i 's/218.106.244.92/192.168.154.121/g' *.html 

administrator@vsphere.local

Seastor@1234












kubectl create deployment kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1

kubectl get pods  #获取集群中的pods

kubectl describe pods  #查看pods的基本信息(ip 端口 以及生命周期)

kubectl proxy  启动一个pods

kubectl logs $POD_NAME  #查看一个pod的log日志。

kubectl exec $POD_NAME env  #查看pod的环境变量

kubectl exec -ti $POD_NAME bash  #进入到pod的shell环境中

exit 退出当前环境

kubectl describe service kubernetes 查看service的详细情况

kubectl get services  #获取当前的服务

kubectl expose deployment/kubernetes-bootcamp --type="NodePort" --port 8080

service/kubernetes-bootcamp exposed   #开启一个服务叫kubernetes-bootcamp 开放8080端口

kubectl describe services/kubernetes-bootcamp 查看一个服务的详细信息。

kubectl describe deployment 查看部署集群的标签集群基本信息

kubectl get pods -l run=kubernetes-bootcamp  -l +一个标签的值,获得标签的信息

kubectl get services -l run=kubernetes-bootcamp

kubectl label pod $POD_NAME app=v1   #更换label

kubectl describe pods $POD_NAME  #查询一个pods的所有基本信息。

kubectl get pods -l app=v1  #使用标签获得用pods列表

kubectl delete service -l run=kubernetes-bootcamp  #删除服务。

kubectl get deployments #列出所有部署的集群。

kubectl scale deployments/kubernetes-bootcamp --replicas=4   #扩展到4个副本数。  扩缩容

kubectl get pods -o wide  #查看pods的情况 看看是不是4个。

kubectl describe services/kubernetes-bootcamp 查看一个服务的详细信息。

kubectl scale deployments/kubernetes-bootcamp --replicas=2  #需改成2个pods

kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2  #更新kubectl的版本号

kubectl rollout status deployments/kubernetes-bootcamp    // 查看更新结果

kubectl rollout undo deployments/kubernetes-bootcamp  //撤回操作。

kubectl delete deployment kubernetes-bootcamp   #删除一个集群











journalctl -f etcd.service   #查看服务日志

systemctl enable etcd.service
netstat -ntlp 

kubectl run kubernetes-bootcamp --image=jocatalin/kubernetes-bootcamp:v1 --port=8080


kubectl get deployments
kubectl describe pod kubernetes-bootcamp-9748db8b4-rngjs

kubectl describe no
journalctl -f 查看所有的日志

Error syncing pod 
curl http://localhost:8001/api/v1/proxy/namespaces/default/pods/pods_name/

配置文件管理方式:

创建Pods:

vim nginx-pod.yaml
apiVersion: v1       #版本
kind: Pod               #类型
metadata: 
    name: nginx
spce:
    containers:
        - name: nginx
          image: nginx:1.7.9
          ports:
          - containerPort: 80  

kubectl create -f nginx-pod.yaml  #直接创建的pod没有deployments

kubectl proxy #启动

curl http://localhost:8001/api/v1/proxy/namespaces/default/pods/nginx-port/

创建deployments

vi nginx-deployment.yaml
apiVersion: apps/v1beta1
kind: Deployment
metadata:
    name: nginx-deployment
spec:
    replicas: 2
    template:
        metadata:
            labels:
                apps:nginx
        spec:
            containers:
            - name: nginx
              image: nginx:1.7.9
              ports:
                - containerPort: 80


kubectl get pods -l app=nginx   -l代表label的意思。 
















mysqldump -u overseas_hczh -p --all-databases > database_dump.txt



mysql 主从复制:
主服务器添加配置
log-bin=mysql-bin
server-id=1  #唯一ID

GRANT REPLICATION SLAVE ON *.* TO 'replication_zsj'@'%' IDENTIFIED BY 'ZhuZhiMa@TangYuan';
这个%可以下固定IP  也可以些IP段 192.168.1.% 

show master status;


从节点 服务器配置:
server-id=2 唯一ID
CHANGE MASTER TO MASTER_HOST='218.106.244.92', MASTER_PORT=23628, MASTER_USER='replication_zsj', MASTER_PASSWORD='ZhuZhiMa@TangYuan', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=871;

show slave status \G;

replicate-do-db    设定需要复制的数据库(多数据库使用逗号,隔开)
replicate-ignore-db 设定需要忽略的复制数据库 (多数据库使用逗号,隔开)
replicate-do-table  设定需要复制的表
replicate-ignore-table 设定需要忽略的复制表 
replicate-wild-do-table 同replication-do-table功能一样,但是可以通配符
replicate-wild-ignore-table 同replication-ignore-table功能一样,但是可以加通配符
replicate-wild-do-table=db_name.%   只复制哪个库的哪个表
replicate-wild-ignore-table=mysql.%   忽略哪个库的哪个表










service功能  kube-proxy    
service在这2个后台Pod之间提供透明的负载均衡
kubectl expose deploy kubernetes-bootcamp --type="NodePort" --target-port=8080 --port=80  暴露一个8080的端口
docker exec -it 7cfb30806bs6 bash  进入一个docker容器中

使用yaml文件:
vim nginx-service.yaml
apiVersion: v1
kind: Service
metadata:
    name: nginx-service
spec:
    ports:
    - port: 8080
      targetPort: 80
      nodePort: 20000
    selector:
      app: nginx
    type: NodePort
kubectl create -f nginx-service.yaml

kubectl get services 

kube-dns (DNS服务)

    kubectl create -f $path  #创建配置文件启动

    dns生效后可以直接使用nginx-service(前面yaml文件中定义的name) 进行ip进行访问。

    kubectl -n kube-system get service (可以看到kube-dns已经启动)

    kubectl -n kube-system get deploy

    kubectl -n kube-system get pods

    kubectl delete -f kubernetes-starter/target/services/kube-dns.yaml #删除一个dns

liuyi01
认证授权:
    对APIServer的访问要经过3个步骤,前面两个是认证和授权,第三个是Admission Control。
    提供多种认证授权方式(可以同时使用1种或者多种的认证方式):
        1.客户端证书认证。
        2.引导Token
        3.Service Account Tokens



docker  




docker run -d  -v /data/docker/owncloud/data:/var/www/html/data  -p 80:80 owncloud:9.1


grant all privileges on owncloud.* to 'owncloud'@'%' identified by 'owncloud' with grant option;

CREATE USER owncloud IDENTIFIED BY 'owncloud';
GRANT EXECUTE,INSERT,SELECT,UPDATE ON owncloud.* TO 'owncloud'@'%';

ALTER USER 'owncloud'@'%' IDENTIFIED WITH mysql_native_password BY 'owncloud';


-v /data/docker/mysql/conf:/etc/mysql/conf.d
docker run -p 3306:3306 --name mysql  -v /data/docker/mysql/logs:/logs -v /data/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7

docker exec -it 775c7c9ee1e1 /bin/bash




1.获得docker-ce的repo包
curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo

2.安装依赖包(推荐使用yum直接安装,也可以使用rpm装)
yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm

3.利用yum安装docker (注意centos安装的是docker  centos8安装是ce)
yum install docker-ce

4.启动docker

#设置开机启动
systemctl enable docker
#重新加载配置文件
systemctl daemon-reload 
暂无评论

发送评论 编辑评论


				
上一篇
下一篇