(1)帮助命令
格式:命令 --help
#docker帮助命令
docker 命令 --help
(2)镜像命令
#镜像查询
docker search 镜像名称 #参数 -f 过滤
#镜像查询实例
docker search --filter stars=500 mysql #收藏数大于500的都会被查出来
#下载镜像
docker pull 镜像名称 #指定版本:镜像名称:版本号
-a 下载仓库中所有版本的镜像
-q 抑制详细信息输出
[root@cluster-node-5 ~]# docker pull mysql #没有指定版本就下载最新的
Using default tag: latest
latest: Pulling from library/mysql
a076a628af6f: Pull complete #分层结构,联合文件系统
f6c208f3f991: Pull complete #当下载其他版本,如果分层结构和底层相同会显示已存在,不再下载。
88a9455a9165: Pull complete
406c9b8427c6: Pull complete
7c88599c0b25: Pull complete
25b5c6debdaf: Pull complete
43a5816f1617: Pull complete
69dd1fbf9190: Pull complete
5346a60dcee8: Pull complete
ef28da371fc9: Pull complete
fd04d935b852: Pull complete
050c49742ea2: Pull complete
Digest: sha256:0fd2898dc1c946b34dceaccc3b80d38b1049285c1dab70df7480de62265d6213
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest
#查看镜像,可配合参数使用
docker images
没有参数默认查看所有镜像
镜像名 查看指定镜像
-a 查看所有镜像
-q 查看镜像id
#删除镜像
docker rmi 镜像名称或id
-f 强制删除
#删除所有镜像
docker rmi -f $(docker images -aq)
(3)容器命令
容器是通过镜像创建的,所以镜像是容器的前提条件
#创建容器:通过运行和操作镜像即可创建容器
docker run 镜像名
-d #后台运行
#操作容器
docker run -it 镜像名称 容器操作环境 #进入容器
exit #退出容器
#容器操作实例
[root@cluster-node-5 ~]# docker run -it centos /bin/bash
[root@cdf3b234e48d /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
[root@cdf3b234e48d /]# exit
exit
#退出并运行容器
Ctrl+P+Q
#查看容器
docker ps
没有参数默认查看所有容器
-a 查看所有容器
-q 查看已运行容器id
-l 最近创建容器
-f 过滤
#删除容器
docker rm 容器id
-f 强制删除(正在运行的)
#启动、停止、重启容器
docker start 容器id
docker stop 容器id
docker restart 容器id
docker kill 容器id
(4)常用的其他命令
-
容器后台运行
#添加-d参数即可 docker run centos #docker ps查看并没有进程,因为docker run 运行的后台进程,并没有前台程序。 #常见的坑:docker run 启动的是后台进程,必须要有一个前台进程,如果发现没有前台进程,后台进程就会自动停掉#例子:docker run -d nginx 启动nginx,但并没有前台进程,所以nginx会自动停止退出 (启动tomcat就没有这样的问题)
-
容器运行日志
#日志帮助命令 docker logs --help #查看日志 docker logs -t -f --tail 显示日志条数 容器id #自己写一个脚本来跑(-c写命令) docker run -d centos /bin/bash -c "while true;do echo wangmingchao; sleep 1;done" [root@cluster-node-5 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 916f9bce35f8 centos "/bin/bash -c 'while…" 5 seconds ago Up 4 seconds eloquent_zhukovsky #根据容器id(916f9bce35f8)查看日志 docker logs -tf --tail 10 916f9bce35f8 -tf #显示日志(带时间戳) --taif number #显示日志内容(条数) [root@cluster-node-5 ~]# docker logs -tf --tail 10 916f9bce35f8 2021-01-20T02:44:29.526266706Z wangmingchao 2021-01-20T02:44:30.531660889Z wangmingchao 2021-01-20T02:44:31.537137199Z wangmingchao 2021-01-20T02:44:32.542756070Z wangmingchao 2021-01-20T02:44:33.546251299Z wangmingchao 2021-01-20T02:44:34.551962770Z wangmingchao 2021-01-20T02:44:35.557304708Z wangmingchao 2021-01-20T02:44:36.562694433Z wangmingchao 2021-01-20T02:44:37.568698327Z wangmingchao 2021-01-20T02:44:38.574129510Z wangmingchao ...... #查看容器内部进程信息 docker top 容器id [root@cluster-node-5 ~]# docker top 916f9bce35f8 UID PID PPID C STIME TTY TIME CMD root 19552 19531 0 10:42 ? 00:00:00 /bin/bash -c while true;do echo wangmingchao; sleep 1;done root 19996 19552 0 10:48 ? 00:00:00 /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/s leep 1 #查看容器信息 docker inspect 容器id [root@cluster-node-5 ~]# docker inspect 916f9bce35f8 [ { "Id": "916f9bce35f8decd1b781238a379d63e9717f4a8526d647f3eefa61e2994c5fb", "Created": "2021-01-20T02:42:57.618486753Z", "Path": "/bin/bash", "Args": [ "-c", "while true;do echo wangmingchao; sleep 1;done" ], "State": { "Status": "running", "Running": true, "Paused": false, "Restarting": false, "OOMKilled": false, "Dead": false, "Pid": 19552, "ExitCode": 0, "Error": "", "StartedAt": "2021-01-20T02:42:58.054917733Z", "FinishedAt": "0001-01-01T00:00:00Z" }, "Image": "sha256:300e315adb2f96afe5f0b2780b87f28ae95231fe3bdd1e16b9ba606307728f55", "ResolvConfPath": ...............................................................
-
进入容器的命令
#通过exec命令进入 docker exec -it 容器id shellbash #测试进入容器 exit [root@cluster-node-5 ~]# docker exec -it 916f9bce35f8 /bin/bash [root@916f9bce35f8 /]# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 02:42 ? 00:00:00 /bin/bash -c while true;do echo wangmingchao; sleep 1;done root 1273 0 0 03:03 pts/0 00:00:00 /bin/bash root 1292 1 0 03:03 ? 00:00:00 /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 1 root 1293 1273 0 03:03 pts/0 00:00:00 ps -ef #通过attach命令进入(不用加任何参数) docker attach 容器id [root@cluster-node-5 ~]# docker attach 916f9bce35f8 wangmingchao wangmingchao ^Cwangmingchao #进入容器命令比较 exec #会新起一个终端,可以在其中操作(常用) attach #直接进入正在执行的终端,不会重启一个
-
从容器中拷贝文件到主机上
#cp命令,在主机操作容器 [root@cluster-node-5 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE mysql latest d4c3cafb11d5 7 days ago 545MB centos latest 300e315adb2f 6 weeks ago 209MB #进入容器 [root@cluster-node-5 ~]# docker run it 300e315adb2f bin/bash #创建测试文件 [root@1c216015f955 /]# cd /home/ [root@1c216015f955 home]# touch wmc.sh [root@cluster-node-5 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1c216015f955 300e315adb2f "/bin/bash" 2 minutes ago Up 2 minutes quirky_bassi #拷贝测试 [root@cluster-node-5 ~]# docker cp 1c216015f955:/home/wmc.sh /home/ [root@cluster-node-5 ~]# cd /home/ [root@cluster-node-5 home]# ll 总用量 0 drwxr-xr-x. 3 root root 30 1月 15 10:50 software -rw-r--r--. 1 root root 0 1月 20 11:18 wmc.sh #现在只是手动操作,之后通过一个数据卷来实现,实现主机:/home 与docker : /home数据自动同步