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
重启
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
- 更新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
#将外部数据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]
评论区