docker version

docker 版本

docker info

docker的相关信息

docker —help

docker [options] command 帮助命令

搜索

docker search -f stars=50 tomcat
大于50个stars的tomcat

docker pull

docker pull nginx:latest docker下载nginx

docker rmi -f

docker删除镜像
docker rmi -f nginx:latest hello-world:latest
以空格分隔

全部删除

docker rmi -f $(docker images -qa)
是docker images -qa返回的是所有的镜像的numeric IDs然后作为参数给docker rmi -f

运行centos

docker run -it {image-Id} 将其中的{image-id}替换一下
我们可以通过加上—name=”xxx”,来指定names
如:

  1. docker run -it --name=docker-centos centos

查看正在运行的容器

docker ps
在这里,我刚刚运行了centos容器,并和这个centos交互,我们重新打开一个页面,运行docker ps命令,会提示command 是bin/bash

还可以通过 -l参数,查看最新创建的容器

[root@hecs-x-large-2-linux-20200420180941 ~]# docker ps -l
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
d3e6e32fd3b0        centos              "/bin/bash"         15 minutes ago      Exited (0) 10 seconds ago                       
docker-c

-n参数,查看最后创建的n个容器

[root@hecs-x-large-2-linux-20200420180941 ~]# docker ps -n 3
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
d3e6e32fd3b0        centos              "/bin/bash"         16 minutes ago      Exited (0) 55 seconds ago                       docker-c
1095fbdb5c7e        centos              "/bin/bash"         23 minutes ago      Exited (0) 16 minutes ago                       sleepy_b
070366c727a3        0d120b6ccaa8        "/bin/bash"         28 minutes ago      Exited (0) 24 minutes ago                       keen_gal

退出容器

两种方式:

  - exit    容器停止退出,我说怎么刚刚exit,直接出问题了
  - ctrl + P + Q  容器不停止退出

启动过去的镜像

[root@hecs-x-large-2-linux-20200420180941 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
ee36fd8dfe41        centos              "/bin/bash"         9 minutes ago       Up 9 minutes                            mycentos
[root@hecs-x-large-2-linux-20200420180941 ~]# docker ps -n 3
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
ee36fd8dfe41        centos              "/bin/bash"         9 minutes ago       Up 9 minutes                                    mycentos
d3e6e32fd3b0        centos              "/bin/bash"         32 minutes ago      Exited (0) 16 minutes ago                       docker-centos
1095fbdb5c7e        centos              "/bin/bash"         39 minutes ago      Exited (0) 32 minutes ago                       sleepy_black
[root@hecs-x-large-2-linux-20200420180941 ~]# docker start d3e6e32fd3b0
d3e6e32fd3b0
[root@hecs-x-large-2-linux-20200420180941 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
ee36fd8dfe41        centos              "/bin/bash"         9 minutes ago       Up 9 minutes                            mycentos
d3e6e32fd3b0        centos              "/bin/bash"         32 minutes ago      Up 4 seconds                            docker-centos

重启容器

[root@hecs-x-large-2-linux-20200420180941 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
ee36fd8dfe41        centos              "/bin/bash"         9 minutes ago       Up 9 minutes                            mycentos
d3e6e32fd3b0        centos              "/bin/bash"         32 minutes ago      Up 4 seconds                            docker-centos
[root@hecs-x-large-2-linux-20200420180941 ~]# docker restart ee36fd8dfe41
ee36fd8dfe41
[root@hecs-x-large-2-linux-20200420180941 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
ee36fd8dfe41        centos              "/bin/bash"         11 minutes ago      Up 6 seconds                            mycentos
d3e6e32fd3b0        centos              "/bin/bash"         33 minutes ago      Up About a minute                       docker-centos

停止容器

docker stop containerId

删除容器

docker rm containerId
docker rm $(docker ps -n 5 -q)
// 上面这句是删除最近5个正在运行的容器
docker rm -f $(docker ps -a -q)
// 删除所有的容器
docker ps -a -q | xargs docker rm
// 这是运用了管道符,将数据传递给docker rm

输出日志

docker logs -f -t containerId
// -f 有点tail -f的意思
// -t 很加一个时间

查看容器内部的进程

docker top containerId
[root@hecs-x-large-2-linux-20200420180941 ~]# docker top a53da9509c71
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                9935                9918                0                   22:09               ?                   00:00:00            /bin/sh -c while true;do echo hello world;sleep 2;done
root                9986                9935                0                   22:10               ?                   00:00:00

重新进入容器

docker run -i -t centos
ctrl + p + Q
docker attach containerId
// 这样就可以重新进入容器

当前容器相关

[root@hecs-x-large-2-linux-20200420180941 ~]# docker exec -t 48bd2d70e7c8 ls -l /tmp
total 8
-rwx------ 1 root root  671 Aug  9 21:40 ks-script-2n9owwnh
-rwx------ 1 root root 1379 Aug  9 21:40 ks-script-xm1o5azb
[root@hecs-x-large-2-linux-20200420180941 ~]# docker exec -t 48bd2d70e7c8 ls -l /tmp
total 8
-rwx------ 1 root root  671 Aug  9 21:40 ks-script-2n9owwnh
-rwx------ 1 root root 1379 Aug  9 21:40 ks-script-xm1o5azb

docker exec -t -i containerId 命令
这里是-it还是-t,需要具体区分,-i好像是持续接收数据keep stdin open even if not attached

将容器的文件拷贝到宿主机中

[root@hecs-x-large-2-linux-20200420180941 ~]# docker cp 48bd2d70e7c8:/tmp/yum.log /root
[root@hecs-x-large-2-linux-20200420180941 ~]# ls
dump.rdb  mysql-community-release-el7-5.noarch.rpm  rabbitmq-server-3.8.3-1.el7.noarch.rpm  yum.log
[root@hecs-x-large-2-linux-20200420180941 ~]# vi yum.log

docker cp containerId:{pathFrom} {pathTo}
pathFrom是容器中的路径,pathTo是宿主机上需要存放的