docker

什么是Docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

和虚拟机的区别

image
docker和K8S区别

docker CMD 和 ENTRYPOINT 区别

组成

Docker是一个C/S结构,由镜像,容器和仓库组成
容器是由镜像实例化而来,这和我们学习的面向对象的概念十分相似,我们可以把镜像看作类,把容器看作类实例化后的对象。

应用场景
  • 简化配置
  • 提高开发效率,不用部署环境
  • 快速部署
  • 代码流水线
  • 开发调试
  • 产品发布模式
  • 分布式集群
  • 存储过程储备数据
docker安装使用

ubuntu安装docker

$ apt-get install -y docker.io

centos安装docker(卸载docker)

$ yum install -y yum-utils device-mapper-persistent-data lvm2
$ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
$ yum install docker-ce-20.10.11
$ 编辑/etc/docker/daemon.json,加入一行
  {
      "data-root": "/data/docker" 
  }
$ systemctl enable docker
$ systemctl start docker

centos配置加速镜像

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://r6jzikjv.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

查看版本

$ docker -v

docker启动

$ /etc/init.d/docker start

搜索centos镜像,第一个是官方镜像

$ docker search centos

拉取centos镜像

$ docker pull centos

查询本地已存在的镜像

$ docker images

删除镜像

$ docker rmi [IMAGE ID]

运行容器命令

$ docker run centos /bin/echo "Hello World"
$ docker run --name=redis --restart=always -v /data/redis:/data -v /data/redis/redis.conf:/etc/redis/redis.conf -p 6379:6379 -d redis redis-server /etc/redis/redis.conf --log-opt max-size=10m --log-opt max-file=5
$ docker run -itd -p 80:80 -p 443:443 --name=nginx --restart=always -v /afc/knowledge/shenzhen/frontend:/usr/share/nginx/html -v /var/lib/docker/nginx/default.conf:/etc/nginx/conf.d/default.conf -v /var/lib/docker/nginx/nginx.conf:/etc/nginx/nginx.conf -v /afc/resource:/home/data/resource --log-opt max-size=10m --log-opt max-file=5 --net=host nginx:1.22.0
$ docker run --name=mysql --restart=always -v /data/mysql:/var/lib/mysql -v /data/mysql/my.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf -e MYSQL_ROOT_PASSWORD='bQjD^I7GW7#b&z$J' -p 3306:3306 -d mysql:5.7.33 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
$ docker run --restart=always -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq
$ docker exec -i mysql sh -c 'exec mysql -uroot -p"F1HCwNB3d2x8Y7bb" guangzhou_metro' < /data/guangzhou_metro_20230719.sql

进入容器

$ docker exec -it [CONTAINER_ID] /bin/bash

批量删除已退出的容器

$ docker rm $(sudo docker ps -a -q)

docker查看网络

$ docker network ls
$ docker network inspect bridge # 查看bridge网络

docker查看日志

$ docker logs -f dd3

docker将数据搬到数据盘上

$ systemctl stop docker
$ systemctl status docker
$ mv /var/lib/docker /data/
$ ln -s /data/docker /var/lib/
$ ll /var/lib/docker
$ systemctl start docker

docker查询正在运行容器的启动命令

$ pip3 install runlike
$ runlike -p nginx

docker访问宿主机ip
docker访问宿主机ip

mac安装minikube

brew install minikube

开启minikube

minikube start

进入minikube

minikube ssh

创建删除pod

kubectl create - pod_nginx.yml # 不推荐
kubectl delete - pod_nginx.yml
kubectl create -f rc_nginx.yml # 推荐使用rc,因为rc当删除一个pod会自动创建一个pod
kubectl delete -f rc_nginx.yml

删除pod

kubectl delete pods nginx-ksp22

获取pod,rc,rs信息

kubectl get pods # 不推荐
kubectl get pods -o wide
kubectl get rc  
kubectl get rc -o wide
kubectl get rs
kubectl get rc -o wide
kubectl get deployment
kubectl get deployment -o wide

进入pod容器

kubectl exec -it nginx sh # 进入pod的第一个容器
kubectl exec -c --container=''  # 指定容器

pods信息

kubectl describe pods nginx

开启多个pod

kubectl scale rc nginx --replicas=5  #开启5个nginx,包括已存在的
kubectl scale rs nginx --replicas=5  #开启5个nginx,包括已存在的

创建deployment

kubectl create -f deployment_nginx.yml

查看deployment历史

kubectl rollout history deployment nginx-deployment

回滚deployment历史

kubectl rollout undo deployment nginx-deployment

对deployment做修改

kubectl set image deployment nginx-deployment nginx=daocloud.io/library/nginx:1.13
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值