docker基础、k8s基础命令

1.常用命令
(1).docker search :查找镜像
用法:docker search [OPTIONS] TERM

(2).docker pull : 拉取镜像(不指定版本,默认拉取latest标签的)
-a:下载镜像仓库所有标签的镜像

(3).docker image ls :列出镜像

(4).docker ps:查看容器信息
-a:显示所有容器,包括运行的和停止的
-q:只显示容器id
-l:显示最新创建的一个容器(包括所有状态)
-n:显现最新创建的容器个数

(5).docker run:利用基础镜像启动一个容器(本地没有则去docker hub上下载)
–rm:容器退出或终止,将自动删除容器
示例:

$ docker run --rm nginx
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
f5d23c7fed46: Pull complete 
918b255d86e5: Pull complete 
8c0120a6f561: Pull complete 
Digest: sha256:eb3320e2f9ca409b7c0aa71aea3cf7ce7d018f03a372564dbdb023646958770b
Status: Downloaded newer image for nginx:latest

Ctrl + C后容器退出,容器自动删除

-d:在后台运行容器并打印容器ID

-p:将容器的端口暴露给宿主机上的指定端口(主机端口:容器端口)
-P:将容器的端口暴露给宿主机上的随机端口(主机端口:容器端口)
-p选项的四种使用格式:
-p < containerPort>

  • 将指定的容器口端口映射至主机所有地址的一个动态端口

-p< hostPort>:< containperPort>

  • 将容器端口< containperPort>映射至指定的主机端口< hostPort>

-p< ip>::< containerPort>

  • 将指定的容器端口< containerPort>映射至主机指定< ip>的动态端口

-p < ip>:< hostPort>:< containerPort>

  • 将指定的容器端口< containerPort>映射至主机指定< ip>的端口< hostPort>

  • “动态端口”指随即端口,具体的映射结果可使用docker port (容器名)命令查看

-v:将容器内的目录映射到宿主机目录上
-e:设置环境变量
–name:设置容器名称,没有设置此option将随机分配一个名称
–restart:容器退出时的重启策略,默认不重启
–restart=no:默认策略,在容器退出时不重启容器
–restart=always:在容器退出时总是重启容器
–restart=on-failure:3:在容器非正常退出时重启容器(退出状态非0),最多重启3次
–restart=unless-stopped:在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器

(6).docker stop:停止一个或多个正在运行的容器,多个容器空格隔开
用法:docker stop 容器名/容器id,停止后STATUS为Exited

(7).docker rm:删除一个或多个容器
用法:docker rm [OPTIONS] CONTAINER [CONTAINER...]
不加options,只能删除停止的容器
-f:强制删除正在运行的容器(除非有特殊情况,否则不建议使用)
-l:删除指定的链接
-v:删除与容器关联的卷

(8)docker exec:在正在运行的容器中运行命令
用法:docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
-it:通常-it在一起使用

(9).docker cp:拷贝文件在主机与容器之间(只需容器存在,不管容器状态)
拷贝容器内文件到宿主机(可以是文件,也可以是目录)
用法:docker cp 容器名/容器ID:/path/to/

拷贝宿主机文件到容器
示例:

$ docker cp test.txt master:/tmp
$ docker exec -it master bash

-a:存档模式(复制所有uid / gid信息)
-L:始终遵循SRC_PATH中的符号链接

2.删除无用的镜像或者容器

删除异常停止的docker容器

docker rm `docker ps -a | grep Exited | awk '{print $1}'` 

删除名称或标签为none的镜像(none可更换为其他想要删除的名称)

docker rmi -f  `docker images | grep '<none>' | awk '{print $3}'`

删除停止的容器

docker  rm $(docker  ps  -aq)

3.容器内独立的6种名称空间
User, Mount, Pid, UTS, Net, IPC

4.Docker 容器网络
要构建具有安全的一致行为的 Web 应用程序,可以使用 Docker 网络特性。根据定义,网络为容器实现了完全隔离。因此,控制应用程序所在的网络很重要。Docker 容器网络提供了这种控制能力。

安装 Docker 时,它会自动创建 3 个网络。可以使用 docker network ls命令列出这些网络

$ docker network ls

在这里插入图片描述
这 3 个网络包含在 Docker 实现中。运行一个容器时,可以使用 the --net标志指定希望在哪个网络上运行该容器。仍然可以使用这 3 个网络。

  • bridge 网络表示所有 Docker 安装中都存在的 docker0 网络。除非使用 docker run --net=选项另行指定,否则 Docker 守护进程默认情况下会将容器连接到此网络。在主机上使用 ifconfig命令,可以看到此网桥是主机的网络堆栈的一部分。
  • host 网络在主机网络堆栈上添加一个容器。可以发现,容器中的网络配置与主机相同。
  • none 网络在一个特定于容器的网络堆栈上添加了一个容器。该容器缺少网络接口。

k8s基础用法:
(1).get命令:

    #获取pod节点运行信息
    kubectl get pods -n prod

(2).获取namespace信息

kubectl get namespace

(3).获取一些更具体的信息,可以通过使用选项“-o”
kubectl get po < podname > -o yaml 以yawl格式输出pod的详细信息

kubectl get pods -n prod ownership-query-node-6c45577f9b-c69s9 -o yaml

(4).edit提供了另一种更新resource源的操作,通过edit能够灵活的在一个common的resource基础上,发展出更过的significant resource。使用edit直接更新前面创建的pod的命令:

kubectl edit pods -n prod ownership-query-node-6c45577f9b-c69s9 -o yaml

(5).输入关键字查找项目名称

kubectl get pod -n prod |grep website(关键字)

(6).查看项目详细信息

 kubectl describe pods -n prod (项目名称)

(7).修改容器的副本数

设置容器的副本数为0
kubectl scale deployment -n pred (容器名称) --replicas=0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值