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
暂无评论