侧边栏壁纸
博主头像
会飞的大象博主等级

爱运动的程序猿

  • 累计撰写 126 篇文章
  • 累计创建 158 个标签
  • 累计收到 0 条评论
标签搜索

目 录CONTENT

文章目录

docker基础命令

会飞的大象
2021-03-30 / 0 评论 / 0 点赞 / 1,098 阅读 / 1,119 字

docker基本命令:

搜索镜像 docker search [名称]

拉取镜像
sudo docker pull 镜像名
sudo docker pull 镜像名:Tag

保存镜像 docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字

加载镜像 docker load -i 镜像保存文件位置

修改镜像名称 docker tag 镜像ID 新镜像名称:版本

通过容器创建镜像 -m 提交描述信息  -a作者 
docker commit -m="First Image" -a="keke" 【容器id】 【目标镜像名】

从容器里面拷贝文件/目录到本地一个路径
docker cp NameID:容器内的文件路径 宿主机路径
如:docker cp f9e29e8455a5:/tmp/yum.log /root

查看所有镜像 docker images

删除镜像(会提示先停止使用中的容器) docker rmi  镜像name/镜像id

强制删除镜像 docker rmi -f 镜像name/镜像id

查看所有容器 docker ps -a


查看容器运行日志 docker logs 容器名称/容器id

停止容器运行 docker stop 容器name/容器id

终止容器后运行 docker start 容器name/容器id

容器重启 docker restart 容器name/容器id

删除容器 docker rm 容器name/容器id

进入容器 docker exec -it 容器id /bin/bash
加载本地tar docker load -i adoptopenjdk-openjdk8.tar 

指定仓库

vim /etc/docker/daemon.json

image-1675645811477
重启

systemctl daemon-reload
systemctl restart docker

热更新

1.拉取1.0版本

docker service create --name web -p 8080:5000 --network demo fan_flask:1.0

2.扩展容器数量

docker service scale web=2
docker service ls
docker service ps web

3.更新web服务

docker service update --image fan_flask:2.0 web

3.1.实战更新

docker service update --image 192.168.159.130:5000/kexin-nginx:1.0.21.0227-1  keXinServer_kexinn_nginx
  1. 更新web服务端口8080为8088
docker service update --publish-rm 8080:5000 --publish-add 8088:5000 web

将镜像保存为tar文件

docker save -o  metrics-server-v0.4.0.tar ccr.ccs.tencentyun.com/mirrors/metrics-server:v0.4.0

发布镜像

docker push  192.168.0.74:5000/metrics-server:V0.4.0

修改标签

docker tag ccr.ccs.tencentyun.com/mirrors/metrics-server:v0.4.0  192.168.0.74:5000/metrics-server:V0.4.0

拉取远程镜像

docker pull ccr.ccs.tencentyun.com/mirrors/metrics-server:v0.4.0

搜索镜像

docker search ingress-nginx

后台运行

docker run --name ${容器名称} -p 9999:8080 -d ${image-id前缀}

交互式运行

docker run -it ${镜像名称} /bin/bash

进入容器

docker exec -it ${容器名称} bash

停止与杀死容器(停止stop,杀死kill)

docker stop ${容器名称}
docker kill ${容器名称}

删除容器

docker rm ${容器名称}

其他命令

docker -v      #版本
docker system df  #查看docker占用磁盘空间情况, -v 展示详情
docker system prune  #删除所有的未被使用的对象,包括镜像、容器、网络和存储卷
docker system prune --volumes # 指定清理存储卷内容,docker17.06.1之后的版本

自定义镜像(新生成/升级)

#启动后台镜像
docker run -dit nginx-arm64:latest  /bin/bash
#找到当前镜像
docker ps|grep nginx

image-1659237752413

 #将外部数据nginx-1.23.1.tar.gz 复制到容器中/home目录
 docker cp  nginx-1.23.1.tar.gz  tender_franklin:/home
 #进入镜像
 docker exec -it be2d32df616f /bin/bash
 #进入目录编译
 cd /home/
 #编译安装
 ./configure --prefix=/usr/local/nginx
 make
 make install
 cp ./objs/nginx /usr/local/nginx/sbin/
 #查看版本
 cd /usr/local/nginx/
 ./sbin/nginx -V
 #退出容器
 exit
 #提交镜像
 docker commit  be2d32df616f   nginx-arm64
 # 将镜像下载下来保存为nginx-arm64.tar
 docker save -o nginx-arm64.tar nginx-arm64:latest

swarn

创建Swarm集群

docker swarm init
docker swarm init --advertise-addr 192.168.29.137
#若是出现"This node is already part of a swarm"的错误 执行以下命令
docker swarm leave -f
这里的leave就是在集群中删除节点,-f参数强制删除,执行完在重新执行OK

###加入集群

docker swarm join --token SWMTKN-1-02eaa0fgkssm1v3m5x9h9mf5o7mkmvdyzm8lxash0m6ow9ue53-2mmpdzki3zrr7uqwqkyphjmmm 192.168.0.23:2377

查看集群信息

docker info
docker node ls

查看加入节点命令

#查看工作节点
docker swarm join-token worker
#查看管理节点
docker swarm join-token manager
#更新工作节点
docker swarm join-token --rotate worker
#更新管理节点
docker swarm join-token --rotate manager

节点标签

#打上标签  例:为192.168.0.23打上vue标签
docker node update --label-add vue=true 192.168.0.23
#查看对应节点的标签
docker node inspect 192.168.0.23
#在docker-compose里添加选择标签启动
  vue:
    image: 192.168.0.23:5000/vue:${VUE_VERSION}
    depends_on:
      - ra
    networks:
      - new-ca
    ports:
      - "80:80"
    environment:
      LD_LIBRARY_PATH: /app
      DUBBO_IP_TO_REGISTRY: vue
      #DUBBO_IP_TO_REGISTRY: 192.168.0.23
    deploy:
      placement:
        constraints: [node.labels.vue==true]
0

评论区