Docker常用的命令记录


一、Docker命令

1.查看docker版本及信息

docker version
docker info

2.docker命令帮助

docker --help

3.镜像仓库命令

以nexus私库镜像仓库为例,仓库地址如:192.168.56.1:5000。

##登陆
docker login 192.168.56.1:5000
##退出
docker logout 192.168.56.1:5000
##推送镜像到私库
docker push 192.168.56.1:5000/liu:latest
##下载镜像到本地
docker pull 192.168.56.1:5000/liu:latest

4.查看镜像列表

docker images
docker images -a

5.删除镜像

docker rmi 镜像名称/镜像ID
docker rmi c6b0863bc64f

6.搜索镜像

docker search 镜像名
docker search mysql

7.通过dockerfile构建镜像

#docker build -t 镜像名称 -f dockerFile名称 .
docker build -t sendi_kkfileview:latest -f Dockerfile_kkfileView .

8.通过后台运行镜像

####其中-p指定端映射
docker run -itd --privileged=true -p 8012:8012 sendi_kkfileview:latest /usr/sbin/init

#### --name指定名称
docker run -itd --name sendi_kkfileview --privileged=true -p 8012:8012 sendi_kkfileview:latest /usr/sbin/init

9.进入运行中容器

##c6b0863bc64f为容器id
docker exec -it fe4ccf746211 /bin/bash

10.在主机上操作执行容器中的shell命令

docker exec fe4ccf746211 /bin/sh -c "df -hl"
docker exec fe4ccf746211 /bin/sh -c "tail -f /opt/kkFileView-4.0.0/log/kkFileView.log"

11.主机与容器中文件互相拷贝

Usage:  docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
        docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH

Copy files/folders between a container and the local filesystem

主机中拷贝文件进容器:

docker cp startup.sh fe4ccf746211:/opt/kkFileView-4.0.0/bin/startup.sh

容器中文件拷贝到主机:

docker cp fe4ccf746211:/opt/kkFileView-4.0.0/bin/startup.sh /root/startup.sh

12.查看日志

## Usage:  docker logs [OPTIONS] CONTAINER
Options:
      --details        Show extra details provided to logs
  -f, --follow         Follow log output
      --since string   Show logs since timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)
  -n, --tail string    Number of lines to show from the end of the logs (default "all")
  -t, --timestamps     Show timestamps
      --until string   Show logs before a timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)

##示例:
docker logs -f 042d30ec0500

13.将容器重新打包成镜像

有时我们需要基于运行中的容器,进行一些修改,比如增加一些文件进行,修改一些配置等,修改后的容器可以重新打包成镜像

Usage:  docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
  -a, --author string    Author (e.g., "John Hannibal Smith <hannibal@a-team.com>")
  -c, --change list      Apply Dockerfile instruction to the created image
  -m, --message string   Commit message
  -p, --pause            Pause container during commit (default true)

##示例:
docker commit -a "liu" -m "sendi_heketi" 2741ea603980  sendi_heketi:latest

14.删除容器

Usage:  docker rm [OPTIONS] CONTAINER [CONTAINER...]
Remove one or more containers
Options:
  -f, --force     Force the removal of a running container (uses SIGKILL)
  -l, --link      Remove the specified link
  -v, --volumes   Remove anonymous volumes associated with the container

##示例:
docker rm c6b0863bc64f

15.挂载目录并启动容器

使用-v进行目录的挂载

docker run -v /home/data/mysqldata:/var/lib/mysql --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 13306:3306 -d mysql:5.6

16.启动停止及重启容器

docker start c6b0863bc64f
docker stop c6b0863bc64f
docker restart c6b0863bc64f

17.导出镜像到文件

docker save -o sendi_kkfileview.tar sendi_kkfileview:latest

18.从文件导入镜像

docker load -i sendi_kkfileview.tar

18.设置Docker容器的时区

如果容器如果没有启动,可以在运行命令里添加 -e TZ=Asia/Shanghai 字段
docker run -e TZ=Asia/Shanghai

如果容器已经启动,在宿主机上执行以下命令
docker cp /usr/share/zoneinfo/Asia/Shanghai 容器ID或名称:/etc/localtime

参考文章:https://blog.csdn.net/qq_58389625/article/details/132796729

19.docker中网络创建与删除

  • 创建 Bridge 网络

Bridge 网络是默认网络,它允许容器相互通信并且能够与外部网络连接。

# 创建一个自定义的 bridge 网络
docker network create my_bridge_network
  • 列出网络
docker network ls
  • 将容器连接到网络
# 启动容器时指定网络
docker run -itd --name centos --network my_bridge_network --privileged=true centos:centos7.9.2009 /bin/bash
docker run -itd --name ubuntu --network my_bridge_network --privileged=true ubuntu:22.04 /bin/bash

# 测试
docker exec -it centos ping ubuntu

# 运行时将现有容器连接到网络
docker network connect my_bridge_network my_container
示例:
docker network connect my_bridge_network centos
docker network connect my_bridge_network ubuntu   
  • 将容器从网络断开

如果需要,可以将容器从网络断开。

docker network disconnect my_bridge_network my_container
  • 删除网络
docker network rm my_bridge_network
  • 在不同主机上

通过端口映射和主机网络通信

# 在主机 A 上运行一个 web 服务容器,并将其端口映射到宿主机端口
docker run -d --name webserver -p 8080:80 nginx

# 在主机 B 上,运行一个容器,通过主机 A 的 IP 地址和映射的端口访问 web 服务:
docker run -it busybox
wget http://<hostA-IP>:8080

这种方法虽然可以实现基本的通信,但不如 Docker 网络解决方案那么灵活和安全。

二、K8s命令

1.查看所有的nodes

#l查看节点状态信息
kubectl get nodes
kubectl get nodes -o wide

2.查看所有的pods

#l查看所有命名空间下的pods
kubectl get pods --all-namespaces

#kubectl get pods -n 命名空间
kubectl get pods -n liutest

#l可以查到更多信息(pod部署在哪个node上)
kubectl get pods -n liutest -o wide

3.查看所有的资源

查看所有的资源信息,包含pod、service、deployment、statefulset、replicaset等

#l查看所有
kubectl get all -n gzyxgoldcard -o wide

#l查看service
kubectl get svc --all-namespaces

#l查看deployment
kubectl get deployment --all-namespaces

#l查看资源描述
#kubectl describe 资源类型 资源名称 -n 命名空间
#examples:
kubectl describe namespace gzyxgoldcard 
kubectl describe pod goldcardsystem-67ddbc47cb-fswvx  -n gzyxgoldcard

4.帮助命令

帮助命令,可以显示出kubectl所有支持的命令摘要集合,

kubectl help

5.查看版本信息

kubectl version

6.查看POD运行日志

###
### kubectl logs pod名称 -n 命名空间
kubectl logs goldcardsystem-67ddbc47cb-fswvx -n gzyxgoldcard
kubectl logs -f goldcardsystem-67ddbc47cb-fswvx -n gzyxgoldcard

7.删除资源

#kubectl delete 资源类型 资源名称 -n 命令空间
#示例
kubectl delete pod goldcardsystem-67ddbc47cb-fswvx -n gzyxgoldcard
kubectl delete 

8.扩容pod数量

kubectl scale deployment nginx --replicas=2 -n microservice

9.升级镜像

kubectl set image deployment nginx nginx=nginx:alpine -n microservice

10.自动伸缩相关

kubectl autoscale deployment nginx-c -n microservice --max=10 --cpu-percent=10 --min=1
kubectl get hpa -n microservice

11.通过文件部署

#kubectl apply -f 部署文件
示例:
kubectl apply -f mysql-deployment.yaml

12.通过文件删除部署

#kubectl delete -f 部署文件
kubectl delete -f mysql-deployment.yaml

13.进入k8s容器pod内部

#kubectl exec -it pod名称 -n 命令空间 -- /bin/bash
#examples,示例
kubectl exec -it goldcardsystem-67ddbc47cb-fswvx -n gzyxgoldcard -- /bin/bash

14.执行容器pod中的shell命令

#kubectl exec -it pod名称 -n 命令空间 -- shell命令
kubectl exec -it goldcardsystem-67ddbc47cb-fswvx -n gzyxgoldcard -- ls -hl

15.新建命名空间

#kubectl create namespace 命名空间名称
#examples,示例:
kubectl create namespace liutest
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值