Docker的常用命令
Docker的常用命令
目录
视频教程:
帮助命令
docker version #显示docker的详细信息
docker info #显示docker的系统信息,包括镜像和容器的数量
docker 命令 --help #帮助命令
帮助文档的地址:https://docs.docker.com/engine/reference/commandline/
(以下图片均使用kali系统)
1、镜像命令
docker images 查看所有本地的主机上的镜像
┌──(root㉿kali)-[~]
└─# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest feb5d9fea6a5 12 months ago 13.3kB
# 解释
REPOSITORY 镜像的仓库源
TAG 版本标签信息
IMAGE ID 镜像的id
CREATED 镜像的创建时间
SIZE 镜像的大小
# 可选项
-a, --all # 列出所有镜像
-q, --quiet # 只列出镜像的id
docker search 搜索镜像
┌──(root㉿kali)-[~]
└─# docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 13234 [OK]
mariadb MariaDB Server is a high performing open sou… 5062 [OK]
phpmyadmin phpMyAdmin - A web interface for MySQL and M… 640 [OK]
percona Percona Server is a fork of the MySQL relati… 588 [OK]
...
# 可选项,通过收藏来过滤
--filter=STARS=5000 #搜索出来的镜像就是STARS大于3000的
┌──(root㉿kali)-[~]
└─# docker search mysql --filter=STARS=5000
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 13234 [OK]
mariadb MariaDB Server is a high performing open sou… 5062 [OK]
docker pull 下载镜像
# 下载镜像 docker pull 镜像名[:tag]
不是很想下,截一下老师的图哈哈哈
docker rmi 删除镜像
┌──(root㉿kali)-[~]
└─# docker rmi -f 镜像id #1.删除指定的镜像id
┌──(root㉿kali)-[~]
└─# docker rmi -f 镜像id 镜像id 镜像id #2.删除多个镜像id
┌──(root㉿kali)-[~]
└─# docker rmi -f $(docker images -aq) #3.删除全部的镜像id
2、容器命令
说明:我们有了镜像才可以创建容器,linux
下载一个centos镜像来测试学习
docker pull centos
新建容器并启动
docker run [可选参数] image
#参数说明
--name="Name" 容器名字 tomcat01,tomcat02,用来区分容器
--d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-p 指定容器的端口 -p 8080:8080
-p ip:主机端口:容器端口
-p 主机端口:容器端口(常用)
-p 容器端口
容器端口
-P 随机指定端口
# 测试,启动并进入容器
┌──(root㉿kali)-[~]
└─# docker run -it centos /bin/bash
[root@93c15a60f187 /]# ls #查看容器内的centos,基础版本,很多命令不完善
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
# 从容器中退回主机
[root@93c15a60f187 /]# exit
exit
┌──(root㉿kali)-[~]
└─#
列出所有的运行的容器
# docker ps 命令
# 列出当前正在运行的容器
-a # 列出当前正在运行的容器+带出历史运行过的容器
-n=? # 显示最近创建的容器
-q # 只显示容器的编号
┌──(root㉿kali)-[~]
└─# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
┌──(root㉿kali)-[~]
└─# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
93c15a60f187 centos "/bin/bash" 7 minutes ago Exited (130) 3 minutes ago funny_jackson
c60fa97d9284 feb5d9fea6a5 "/hello" 4 hours ago Exited (0) 4 hours ago quizzical_pasteur
5ab8620c78f5 medicean/vulapps:s_shiro_1 "/usr/local/tomcat/b…" 2 months ago Exited (143) 2 months ago trusting_mestorf
┌──(root㉿kali)-[~]
└─# docker ps -n=1
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
93c15a60f187 centos "/bin/bash" 14 minutes ago Exited (130) 10 minutes ago funny_jackson
┌──(root㉿kali)-[~]
└─# docker ps -aq
93c15a60f187
c60fa97d9284
5ab8620c78f5
退出容器
exit # 直接容器停止并退出
Ctrl + P + Q # 容器不停止退出
删除容器
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 # 强制停止当前容器
测试收尾工作(可有可无)
👉遇到的问题
1、如何进入正在运行的容器
因为正在运行的容器无法通过容器id删除,所以衍生出了这个问题
解决方法1:使用docker exec
docker exec 相当于进入容器并开启一个新的终端,可以在里面操作。
如果使用exit退出,容器也不会停止。
帮助信息:
注意:因为exec是开始一个新终端,所以COMMAND是必填项,不能省略。
常用命令(其中容器id是你docker中正在运行的容器id):
docker exec -it 容器id /bin/bash
解决方法2:使用docker attach
docker attach 进入容器正在执行的终端,不会启动新的进程。
如果使用exit退出,容器会停止运行!
如果想退出容器但不想容器停止,则按住Ctrl+P+Q退出
帮助信息:
注意:可以很清楚得看到attach命令后面可以直接接容器id即可
常用命令(其中容器id是你docker中正在运行的容器id):
docker attach 容器id
结果:
方法参考:https://blog.csdn.net/Starrysky_LTL/article/details/121168670