【docker】2.命令

小结图:

        docker version

                查看docker版本

        docker info

                查看docker信息,client和server(包括容器里面哪个服务执行、暂停、停止)

        docker --help(docker 【命令】--help)

                docker里面所有的命令代码

        docker stats

                查看cpu和内存的情况

镜像命令:

·docker images 查询所有镜像

        Options:

        -a, --all 展示所有镜像

        -q, --quiet 只显示镜像的id

·docker search 搜索镜像(和dockerHub同作用)

        Options:

        -f, --filter filter 可选项,通过搜藏来过滤

        例:PS C:\Users\41074\Desktop> docker search centos

·docker pull 下载镜像

        说明:默认是最新的版本

        ☆指定版本下载:docker pull 【服务】: 【版本】

·docker rmi 删除镜像

        docker rmi -f 镜像id

               说明:删除指订的镜像

        docker rmi -f 镜像id 镜像id 镜像id

                说明:删除多个指订的镜像,使用空格断开

        docker rmi -f $(docker images -aq)

                说明:删除全部镜像

        1.例:

        PS C:\Users\41074\Desktop> docker pull mysql:5.7

        2.例:

        通过函数,递归全部删除镜像

        PS C:\Users\41074\Desktop> docker rmi -f $(docker images -aq)

容器命令:

说明:我们有了镜像才可以创建容器,linux,下载一个centos镜像来测试学习

docker pull centos

1.新建容器并启动:

        docker run [可选参数] image

        ·参数说明:

        --name="Name" 容器的名字

        -e 环境配置

        例: docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch

        -d 后台方式运行

        -it 使用交互方式运行,进入容器查看内容

        -p 指定容器的端口 -p 8080:8080

        -p ip:主机端口 : 容器端口

        -p 主机端口 : 容器端口 (常用)

        -P(大写p) 随机指定端口

        -e 环境配置

·测试:启动并进入容器

PS C:\Users\41074\Desktop> docker run -it centos /bin/bash

[root@ec3a9d25ed6c /]# ls //查看容器内的centos,基础版本,很多命令都是不完善的!

bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var

PS C:\Users\41074\Desktop>

2.查看正在运行中的容器:

        docker ps //查看运行中的容器

        -a //查看运行中+运行过的容器(历史记录)

        -n=? //显示最近创建的容器

        -q //只显示容器的编号

        例:

        PS C:\Users\41074\Desktop> docker ps -aq

        ec3a9d25ed6c

        84c9249ee2fb

        3cb952fd1825

        9b061ea8b769

        d59ab6d3dd89

        PS C:\Users\41074\Desktop> docker ps -aq -n=2

        ec3a9d25ed6c

        84c9249ee2fb

3.退出容器:

        ·直接停止并退出

        例:[root@ec3a9d25ed6c /]# exit //从容器退回到主机

        exit

        ·容器不停止退出

        Ctrl + P + Q

4.删除容器:

        docker rm 容器id //删除指定的容器,不能删除正在运行的容器,如果强制删除就是 rm -f

        docker rm -f $(docker ps -aq) //删除所有的容器

        docker ps -a -q|xargs docker rm //删除所有的容器

5.启动和停止容器:

        docker start 容器id //启动容器

        docker restart 容器id //重启容器

        docker stop 容器id //停止当前正在运行的容器

        docker kill 容器id //强制停止当前容器

6.进入当前正在运行的容器的命令:

        docker exec -it 容器id /bin/bash //相当于开启新的终端

        docker attach 容器id //以前有进程就进以前的进程,没有就新开启一个终端

常用其他命令:

1.后台启动容器

        命令 docker run -d 镜像名!

        例:docker run -d centos        

        注意:

        问题,docker ps ,发现centos停止了

        常见的坑,docker容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止

        nginx,容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了

2.查看日志命令

        docker logs -f -t --tail 容器,没有日志

        ~自己编写一段shell脚本

        "while true;do echo kuangshen;sleep 1;done"

        ~在后台运行脚本

        docker run -d centos /bin/bash -c "while true;do echo gao;sleep 1;done"

        ~查看日志

        docker logs -tf --tail 10 914ce91afb14

        --tail 10:表示显示最新10条日志

        -t:显示时间

        -f:输出日志

3.查看容器中进程信息

        docker top

   PS C:\Users\41074\Desktop> docker top linux

UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                1977                1958                0                   02:07               ?                   00:00:00            /bin/bash

4.查看容器元数据

        docker inspect 容器id

5.进去当前正在运行的容器

# 我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置

# 命令:
 docker exec -it 容器id bashShell  	#相当于容器开启一个新的终端,可以在里面操作(常用)
 docker attach 容器id								#进入容器正在执行的终端,不会启动新的进程!
 
# 测试:
PS C:\Users\41074\Desktop> docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED        STATUS         PORTS     NAMES
c1ef845bb3c3   centos    "/bin/bash"   18 hours ago   Up 6 seconds             linux
PS C:\Users\41074\Desktop> docker exec -it linux /bin/bash
[root@c1ef845bb3c3 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@c1ef845bb3c3 /]# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 03:25 pts/0    00:00:00 /bin/bash
root        15     0  0 03:25 pts/1    00:00:00 /bin/bash
root        30    15  0 03:25 pts/1    00:00:00 ps -ef


# 方式二:
PS C:\Users\41074\Desktop> docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED        STATUS         PORTS     NAMES
c1ef845bb3c3   centos    "/bin/bash"   18 hours ago   Up 4 minutes             linux
PS C:\Users\41074\Desktop> docker attach linux
[root@c1ef845bb3c3 /]#
正在执行当前的代码...

6.从容器内拷贝文件到主机上

docker cp 容器id:文件位置 要放的位置

查看当前主机目录
PS C:\Users\41074\Desktop> docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED        STATUS         PORTS     NAMES
c1ef845bb3c3   centos    "/bin/bash"   18 hours ago   Up 4 minutes             linux
PS C:\Users\41074\Desktop> docker attach linux
[root@c1ef845bb3c3 /]# docker ps
bash: docker: command not found
[root@c1ef845bb3c3 /]# read escape sequence
PS C:\Users\41074\Desktop> docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED        STATUS          PORTS     NAMES
c1ef845bb3c3   centos    "/bin/bash"   18 hours ago   Up 13 minutes             linux

# 进入docker容器内部
PS C:\Users\41074\Desktop> docker attach linux
[root@c1ef845bb3c3 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@c1ef845bb3c3 /]# cd home
[root@c1ef845bb3c3 home]# ls

#在容器内新建一个文件
[root@c1ef845bb3c3 home]# touch test.java
[root@c1ef845bb3c3 home]# ls
test.java
[root@c1ef845bb3c3 home]# exit

#将文件copy到目标文件
PS C:\Users\41074\Desktop> docker cp c1ef845bb3c3:/home/test.java D:\

#拷贝是一个手动过程,未来我们使用 -v 卷的技术,可以实现自动同步

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值