Docker使用

Docker

帮助命令

docker version # 查看当前docker的本本信息
docker info    # 显示docker的系统信息 包括docker的镜像信息和容器信息
docker 命令 --help #查看命令的用法

 

列出本地主机上的镜像

# 列出本地主机上的镜像
[root@kuangshen ~]# docker images 
# 可选项 
    -a: 列出本地所有镜像 
    -q: 只显示镜像id 
    --digests: 显示镜像的摘要信息

搜索镜像

# 搜索镜像
[root@kuangshen ~]# docker search mysql
# docker search 某个镜像的名称 对应DockerHub仓库中的镜像
# 可选项 
 --filter=stars=50 : 列出收藏数不小于指定值的镜像。

下载(拉取)镜像

# 下载镜像
[root@kuangshen ~]# docker pull mysql 
Using default tag: latest # 不写tag,默认是latest 
latest: Pulling from library/mysql 
54fec2fa59d0: Already exists # 分层下载 
bcc6c6145912: Already exists 
951c3d959c9d: Already exists 05de4d0e206e: 

删除镜像

#删除镜像
docker rmi [-f] 镜像(REPOSITORY | IMAGE ID)

 

docker run [OPTIONS] IMAGE [COMMAND][ARG...]
​
# 常用参数说明
--name="Name" # 给容器指定一个名字 -
-d # 后台方式运行容器,并返回容器的id! 
-i # 以交互模式运行容器,通过和 -t 一起使用 
-t # 给容器重新分配一个终端,通常和 -i 一起使用 
-P # 随机端口映射(大写) 
-p # 指定端口映射(小写),hostPort:containerPort (常用)
​
# 使用centos进行用交互模式启动容器,在容器内执行/bin/bash命令!
​
[root@kuangshen ~]# docker run -it centos /bin/bash
[root@dc8f24dd06d0 /]# ls # 注意地址,已经切换到容器内部了!
[root@dc8f24dd06d0 /]# exit # 使用 exit 退出容器

列出所有运行的容器

​
docker ps [OPTIONS] # 列出所有运行的容器
docker ps |grep mysql
# 常用参数说明
-a # 列出当前所有正在运行的容器 + 历史运行过的容器
-l # 显示最近创建的容器 
-n=? # 显示最近n个创建的容器 
-q # 静默模式,只显示容器编号。

启动容器

#启动一个容器
[root@localhost ~] docker run -it --name=centos01 centos:latest 
[root@e133dc9cf70c /] ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
docker run -p 8089:8089 --name xiaotongdemo -d xiaotongdemo:v0.1
# 参数说明
    -P:指定端口映射。格式为,主机端口:容器端口
    -d:后台运行容器,返回容器id

启动、停止、重启容器

#启动一个容器
[root@localhost ~]# docker run -it --name=centos01 centos:latest 
[root@e133dc9cf70c /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

 

退出容器(ctrl+P+Q)

# 退出容器
exit # 容器停止退出 
ctrl+P+Q # 容器不停止退出(推荐使用这种)

进入正在运行的容器

#进入正在运行的容器
-d # 后台方式运行容器,并返回容器的id! 
-i # 以交互模式运行容器,通过和 -t 一起使用 
-t # 给容器重新分配一个终端,通常和 -i 一起使用
# 命令1
docker exec -it 容器id bashShell
docker exec -it c8530dbbe3b4 /bin/bash

# 命令2
docker attach 容器id
docker exec -it c8530dbbe3b4 /bin/bash

# 区别 
# exec 
  #进入容器后开启一个新的终端在新的终端里面操作 (常用)
  # exit退出容器终端时,容器不会停止
# attach 会在原来的终端操作
  # exit退出容器终端时,容器会停止


scp 当前路径的文件 -- 目标主机:/要复制到的路径
scp ./test.txt root@目标主机id:/目标主机路径
将当前目录下的startup.sh拷贝到目标主机157上的/home/目录下
scp startup.sh root@192.168.1.157:/home/

检查容器的元数据

docker inspect 容器id|容器名
docker inspect 53f33a5e7838

查看容器中的进程信息

# docker top 容器名|容器id
[root@localhost ~] docker top centos02
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                15327               15310               0                   09:12               pts/0               00:00:00            /bin/bash
[root@localhost ~]# 

查看日志

docker logs [-tf] 容器id --tail number
    -t             # 带时间戳
    -f             # 实时日志
    -- tail number #指定显示日志的数量(常用)
dokcer logs 53f33a5e7838 --tail 100

 

容器与宿主机互拷贝

docker cp 容器id:容器内路径 目的主机路径 # 复制容器中的文件到宿主机
# docker cp   主机文件路径  容器id:容器内目的文件路径
docker cp $pwd 容器id:容器内路径  # 复制宿主机的文件到容器内

Ubuntu

Ubuntu的whichwhereislocate和find命令

  • which 只能寻找可执行文件 ,并在PATH变量里面寻找。

  • whereis 从linux文件数据库(/var/lib/slocate/slocate.db)寻找,所以有可能找到刚刚删除,或者没有发现新建的文件。全部匹配

  • locate 同上,不过文件名是部分匹配。

  • find 是直接在硬盘上搜寻,功能强大,但耗硬盘,一般不要用。

工作中结合K8S

ssh root@192.XX.XX.XX # CDC任务对应的K8S服务是127的这个服务
​
kubectl get po # 获取所有的节点信息
​
root@ubuntu:~ kubectl get po|grep flink
flink-jobmanager-7f49559f87-p9xr4                         1/1     Running   0          108d
flink-jobmanager-batch-566b47b95d-svpdb  # 自己组态的开发任务(处理批)                  1/1     Running   0          10d
flink-jobmanager-stream-b78479b54-xhbfs  # steam 整库迁移的                 1/1     Running   0          10d
flink-taskmanager-786ddf65c-dhl4v                         1/1     Running   0          108d
flink-taskmanager-batch-6db9857897-vhjzf                  1/1     Running   0          10d
flink-taskmanager-stream-969787d4d-tjqdj                  1/1     Running   1          10d
​
# 把jobmanager-stream端口暴露出去,然后在flink上查看问题
kubectl port-forward --address 0.0.0.0 pod/flink-jobmanager-stream-b78479b54-xhbfs 9000:8081
​
root@ubuntu:~ kubectl get po # 获取所有节点信息
NAME                                                 
dam-etl-64d4bc88f5-pjvbc                              
dam-frontend-64f4b485d8-6rf25                          
dam-resource-6899c977d7-clk6q # 数据源                            
etl-frontend-5f99ddb7b-c5fcw                              
etl-menus-6bfd576944-52shc                                
flink-jobmanager-7f49559f87-p9xr4                         
flink-jobmanager-batch-566b47b95d-svpdb # 自己组态的开发任务,处理批                
flink-jobmanager-stream-b78479b54-xhbfs # 整库迁移                  
flink-taskmanager-786ddf65c-dhl4v                         
flink-taskmanager-batch-6db9857897-vhjzf                  
flink-taskmanager-stream-969787d4d-tjqdj   
 
posted @ 2022-04-28 16:08  无敌大牛牛  阅读(43)  评论(0编辑  收藏  举报