马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
通例命令
通例命令汇总
- docker version #查看Docker版本信息
- docker info #显示Docker的系统信息,包括镜像和容器的数量
- docker 命令 --help #查看所有的命令
- systemctl status docker #查看docker运行状态
复制代码 镜像根本命令
检察全部镜像
检察全部镜像
测试
- [root@test docker]# docker images
- REPOSITORY TAG IMAGE ID CREATED SIZE
- docker.io/hello-world latest feb5d9fea6a5 19 months ago 13.3 kB
- docker.io/centos latest 5d0da3dc9764 19 months ago 231 MB
- 解释:
- repository 镜像的仓库源
- tag 镜像的标签
- image id 镜像的id
- created 镜像创建时间
- size 镜像大小
复制代码 可选项
- -a, --all #列出所有的镜像
- -q,--quiet #只显示镜像的id
复制代码 搜刮镜像
搜刮镜像
测试
- [root@test docker]# docker search mysql
- INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
- docker.io docker.io/mysql MySQL is a widely used, open-source relati... 14061 [OK]
- docker.io docker.io/mariadb MariaDB Server is a high performing open s... 5369 [OK]
复制代码 可选项
- -f,--filter #根据提供的条件过滤输出
- [root@test docker]# docker search mysql -f stars=1000 #搜索mysql下载量大于1000的结果!
- INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
- docker.io docker.io/mysql MySQL is a widely used, open-source relati... 14061 [OK]
- docker.io docker.io/mariadb MariaDB Server is a high performing open s... 5369 [OK]
- --limit #最大搜索结果数
复制代码 下载镜像
1、通例下载
测试
- [root@test ~]# docker pull mysql
- Using default tag: latest #如果不写tag,默认就是最新的
- Trying to pull repository docker.io/library/mysql ...
- latest: Pulling from docker.io/library/mysql
- 328ba678bf27: Pull complete #分层下载,Docker image的核心 联合文件系统
- f3f5ff008d73: Pull complete
- dd7054d6d0c7: Pull complete
- 70b5d4e8750e: Pull complete
- cdc4a7b43bdd: Pull complete
- a0608f8959e0: Pull complete
- 5823e721608f: Pull complete
- a564ada930a9: Pull complete
- 539565d00e89: Pull complete
- a11a06843fd5: Pull complete
- 92f6d4aa041d: Pull complete
- Digest: sha256:a43f6e7e7f3a5e5b90f857fbed4e3103ece771b19f0f75880f767cf66bbb6577 #签名
- Status: Downloaded newer image for docker.io/mysql:latest #真实地址
复制代码 2、指定版本下载
测试
- [root@test ~]# docker pull mysql:5.7
- Trying to pull repository docker.io/library/mysql ...
- 5.7: Pulling from docker.io/library/mysql
- e83e8f2e82cc: Pull complete #这里涉及到一个细节,就是如果我们之前下载的镜像和某个版本的镜像有相同的文件,就不需要下载直接就能使用
- 0f23deb01b84: Pull complete
- f5bda3b184ea: Pull complete
- ed17edbc6604: Pull complete
- 33a94a6acfa7: Pull complete
- f153bd2953e4: Pull complete
- ab532edfb813: Pull complete
- c76bdfe4f3d0: Pull complete
- 8a7ffe2f2551: Pull complete
- 857ada4fbbcc: Pull complete
- b7c508404c3c: Pull complete
- Digest: sha256:f57eef421000aaf8332a91ab0b6c96b3c83ed2a981c29e6528b21ce10197cd16
- Status: Downloaded newer image for docker.io/mysql:5.7 #最后下载的就是5.7版本的镜像
复制代码 删除镜像
1、根据镜像ID删除对应的镜像
测试
- [root@test ~]# docker images
- REPOSITORY TAG IMAGE ID CREATED SIZE
- docker.io/mysql 5.7 dd6675b5cfea 5 days ago 569 MB
- docker.io/mysql latest 8189e588b0e8 5 days ago 564 MB
- docker.io/hello-world latest feb5d9fea6a5 19 months ago 13.3 kB
- docker.io/centos latest 5d0da3dc9764 19 months ago 231 MB
- [root@test ~]# docker rmi -f dd6675b5cfea #删除mysql5.7版本
- Untagged: docker.io/mysql:5.7
- Untagged: docker.io/mysql@sha256:f57eef421000aaf8332a91ab0b6c96b3c83ed2a981c29e6528b21ce10197cd16
- Deleted: sha256:dd6675b5cfea17abb655ea8229cbcfa5db9d0b041f839db0c24228c2e18a4bdf
- Deleted: sha256:ce931a23976217d9a54389e972eb3fc823ec4c2ef51ff712f6330437bd7a373a
- Deleted: sha256:64eb3560e160f706ef4994cb38a97d1ce32a219e547ead81fd51766d46c5e1c2
- Deleted: sha256:9e009673657831f462ffdacbf099a070f0bb03cbb105483c69470a25ab87efe0
- Deleted: sha256:a37428431f1f5ebda54ff32a40299e87a2e5e9b867bfb9c1e6199f9d04850a9a
- Deleted: sha256:b5463af91376b3d4772113805dbce79805129326c301a80947cbfd43c8069898
- Deleted: sha256:c0a975af561fdd0b68965ca9c572d91244b6dff6124b6a4d66b3188c0cb72d9f
- Deleted: sha256:38700ee823d5d82b695bb7d553973c0106384a6984b553e2af6d6fb9545d9636
- Deleted: sha256:7cfca860605c4f16b1f255ebd51e2c801e00ac16997c7840428f88a2246cfebb
- Deleted: sha256:0d8a62cb129e3cebaaef51f977b670282775d48a9cdaa021a0cb5ed73243a446
- Deleted: sha256:66e6e199acb7395ac9a10b125841eafdfa3f80a1a3f710e0a0a9519da228bce2
- Deleted: sha256:e74a57638021cebbbe0dda98a27675f9b53258050ee2c29c3e5fb7fb1f3ab533
- [root@test ~]# docker images
- REPOSITORY TAG IMAGE ID CREATED SIZE
- docker.io/mysql latest 8189e588b0e8 5 days ago 564 MB
- docker.io/hello-world latest feb5d9fea6a5 19 months ago 13.3 kB
- docker.io/centos latest 5d0da3dc9764 19 months ago 231 MB
复制代码 2、删除多个的镜像
- docker rmi -f 镜像ID 镜像ID 镜像ID ......
复制代码 3、删除全部的镜像
- docker rmi -f $(docker images -aq)
复制代码 构建镜像
- docker build -f dockerfile文件 -t 镜像名:版本号 .
- #-f file的意思,后面加要执行的dockerfile文件
- #-t tagged的意思,后面加镜像的名称
复制代码 检察镜像的构建过程
通过这个命令,我们可以检察到某个镜像暴露的端口号,以及追溯他们的构建过程,便于我们学习!
容器根本命令
新建容器并启动以及退出容器
首先先在服务器上下载一个centos
1、run 新建容器并启动
留意:如果Docker中没有这个镜像,那么这个run命令会先下载镜像,再创建容器并启动!!!
- docker run [可选参数] image(镜像名):版本号(默认是最新版本,想要指定版本需要加上版本号!)
- 可选参数:
- --name="name" 容器名字,通过一个镜像可以创建多个容器实例,命名可以区分不同的容器
- -d 以后台的方式运行 (使用-d命令常见的坑:
- 比如我们想启动以下Nginx服务,只让他在后台运行,但是没有前台的服务可以交互,那么系统就会默认把这个服务关掉!不提供服务!)
- -it 使用交互方式运行,进入容器查看内容
- -p 指定容器的端口
- 有四种方式
- -p ip:主机端口:容器端口
- -p 主机端口:容器内部端口(常用,主机端口映射某个容器内部的端口号,访问主机的端口,即可访问容器)
- -p 容器端口
- 容器端口
- -P(大写) 随机指定端口
- --rm 容器关闭后就被删除掉,一般用于测试!
复制代码 端口暴露原理
测试,启动并进入容器
- [root@test ~]# docker images
- REPOSITORY TAG IMAGE ID CREATED SIZE
- docker.io/centos latest 5d0da3dc9764 19 months ago 231 MB
- [root@test ~]# docker run -it centos /bin/bash
- [root@4bb33b21e9b3 /]# ls #查看容器内的centos
- bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
复制代码 2、退出容器,退出到主机
(1)退出并停止容器
(2)退出但是不绝止
测试(留意最左边的实例的区别,通过exit命令,退出了刚刚进入的容器)
- [root@f72dfcd7674c /]# ls
- bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
- [root@f72dfcd7674c /]# exit
- exit
- [root@test /]# ls
- bin boot data dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
复制代码 测试退出但是不绝止容器(现在检察运行的容器是2个)
- [root@test /]# docker run -it centos /bin/bash
- [root@dfad547fa530 /]# [root@test /]# docker ps
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- dfad547fa530 centos "/bin/bash" 16 seconds ago Up 16 seconds zen_shannon
- fa54decee308 centos "/bin/bash" 12 months ago Up 12 months mydocker
复制代码 列出所有正在运行的容器
- docker ps #列出当前正在执行的容器
- 可选参数:
- -a #列出当前正在运行的加上历史上运行过和没有运行的容器
- -n=? #显示最近运行的容器的个数
- -p #只显示容器的编号(和docker image -aq相同!!!!!!)
复制代码 测试
- [root@test /]# docker ps
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- fa54decee308 centos "/bin/bash" 12 months ago Up 12 months mydocker
- [root@test /]# docker ps -a
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- 5a0f80b0a263 centos "/bin/bash" 55 seconds ago Exited (127) 37 seconds ago stupefied_allen
- f72dfcd7674c centos "/bin/bash" 3 minutes ago Exited (0) 3 minutes ago musing_mahavira
- 4bb33b21e9b3 centos "/bin/bash" 10 minutes ago Exited (0) 3 minutes ago stupefied_shockley
- cf30a58f6bbe feb5d9fea6a5 "/hello" 59 minutes ago Exited (0) 59 minutes ago happy_noether
- 04bcc4fb5397 feb5d9fea6a5 "/hello" 5 hours ago Exited (0) 5 hours ago fervent_cray
- fa54decee308 centos "/bin/bash" 12 months ago Up 12 months mydocker
- 71bf5591e4d2 centos "/bin/echo 'Hello ..." 12 months ago Exited (0) 12 months ago pensive_wozniak
- d9428a50b4d4 centos "/bin/echo 'hello ..." 12 months ago Exited (0) 12 months ago awesome_poitras
- 2032da65f464 feb5d9fea6a5 "/hello" 12 months ago Exited (0) 12 months ago dazzling_bardeen
- 466f5bcb945f feb5d9fea6a5 "/hello" 12 months ago Exited (0) 12 months ago laughing_hopper
- bd54718a0c74 feb5d9fea6a5 "/hello" 12 months ago Exited (0) 12 months ago hopeful_einstein
- [root@test /]# docker ps -aq
- 5a0f80b0a263
- f72dfcd7674c
- 4bb33b21e9b3
- cf30a58f6bbe
- 04bcc4fb5397
- fa54decee308
- 71bf5591e4d2
- d9428a50b4d4
- 2032da65f464
- 466f5bcb945f
- bd54718a0c74
- [root@test /]# docker ps -a -n=1
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- 5a0f80b0a263 centos "/bin/bash" 5 minutes ago Exited (127) 4 minutes ago
复制代码 删除容器
- docker rm 容器ID #删除指定的容器,不能删除正在运行的容器,如果想强制删除 rm -f
- docker rm -f $(docker ps -aq) #删除所有的容器
- docker ps -a -q|xargs docker rm #删除所有的容器
复制代码 启动和停止容器
- docker start 容器ID #启动容器
- docker restart 容器ID #重启容器
- docker stop 容器ID #停止当前正在运行的容器
- docker kill 容器ID #强制停止正在运行的容器
复制代码 检察容器内部进程信息
测试
- [root@test /]# docker top dfad547fa530
- UID PID PPID C STIME TTY TIME CMD
- root 23200 23186 0 16:09 pts/4 00:00:00 /bin/bash
复制代码 检察容器的元数据
测试(只截取了部分的数据信息,详细的需要实战读取)
- [root@test /]# docker inspect dfad547fa530
- [
- {
- "Id": "dfad547fa5308f33964c676d6747092943a012f0b9a3223a392918f9be2b9202",
- "Created": "2023-04-23T07:33:11.700487525Z",
- "Path": "/bin/bash",
- "Args": [],
- "State": {
- "Status": "running",
- "Running": true,
- "Paused": false,
- "Restarting": false,
- "OOMKilled": false,
- "Dead": false,
- "Pid": 23200,
- "ExitCode": 0,
- "Error": "",
- "StartedAt": "2023-04-23T08:09:46.402995242Z",
复制代码 进入当前正在运行的容器
1、方式一
命令
- docker exec -it(可交互) 容器ID /bin/bash
复制代码 测试
- [root@test /]# docker exec -it dfad547fa530 /bin/bash
- [root@dfad547fa530 /]# ls
- bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
复制代码 2、方式二
命令
两种方式的区别:
- docker exec #进入容器后开启一个新的终端,可以在里面做一些操作(常用!)
- docker attach #进入容器正在执行的终端,不会开启新的进程!
复制代码 从容器中手动拷贝文件到主机
由于容器和宿主机是互相隔离的,容器中的文件和主机是不共享的,但是我们可以通过拷贝来实现文件的共用!
- docker cp 容器ID:容器内文件路径 目的主机路径
复制代码 测试
- [root@test ~]# docker exec -it dfad547fa530 /bin/bash #进入正在运行的Docker容器
- [root@dfad547fa530 /]# ls
- bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
- [root@dfad547fa530 /]# cd /home/
- [root@dfad547fa530 home]# ls
- [root@dfad547fa530 home]# touch gh.java #在home下新建文件
- [root@dfad547fa530 home]# ls
- gh.java
- [root@dfad547fa530 home]# exit #退出并关闭容器
- exit
- [root@test ~]# docker ps
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- dfad547fa530 centos "/bin/bash" 19 hours ago Up 9 minutes zen_shannon
- fa54decee308 centos "/bin/bash" 12 months ago Up 12 months mydocker
- [root@test ~]# docker cp dfad547fa530:/home/gh.java /home #拷贝命令!拷贝到主机上!
- [root@test ~]# cd /home
- [root@test home]# ls
- gh.java
复制代码 常用其他命令
检察日志
- docker logs
- 可选参数:
- -t #打印时间戳
- -f #实时追踪日志
- --tail number #显示指定的日志条数
复制代码 命令总结
至此,关于Docker常见的命令先容完毕,涉及到的命令比较繁杂,渴望大家可以收藏并坚持学习。后续还会连续更新相干技术点,敬请等待~~~
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |