Docker总结(命令、镜像、容器、数据卷、DockerFile、网络、Compose)

2023-12-18 15:49:33 浏览数 (2)

Docker常用命令

帮助命令

代码语言:javascript复制
docker version    # 显示docker的版本信息
docker info    # 显示docker的系统信息,包括镜像和容器的数量
docker 命令 --help    # 帮助命令

帮助文档地址:https://docs.docker.com/engine/reference/commandline/docker/

镜像命令

docker images 查看所有本机的主机上的镜像

代码语言:javascript复制
[root@FanJunyang /]# docker images
REPOSITORY
hel1o-world

TAG
latest

IMAGE ID
bf756fb1ae65

CREATED
4 months ago

SIZE
13.3kB

#解释
REPOSITORY 镜像的仓库源
TAG    镜像的标签
IMAGE ID 镜像的id
CREATED 镜像的创建时间
SIZE 镜像的大小

#可选项
-a, --all    #列出所有镜像
-q, --quiet    #只显示镜像的id

docker search 搜索镜像

代码语言:javascript复制
docker search mysql

# 可选项,搜索过滤  
--filter=STARTS=3000    # 过滤星数不少于3000的

docker search mysql --filter=STATRS=3000

docker pull 下载镜像

代码语言:javascript复制
# docker pull 镜像名[:tag]
# 如果不写tag,默认就是latest(最新版)

# 指定版本下载
docker pull mysql:5.7    # 必须官网上有

docker rmi 删除镜像

代码语言:javascript复制
[root@FanJunyang /]# docker rmi -f 容器id #删除指定的容器
[root@FanJunyang /]# docker rmi -f 容器id容器id容器id容器id # 删除多个容器
[root@FanJunyang /]# docker rmi -f $(docker images -aq) # 删除全部的容器

容器命令

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

代码语言:javascript复制
docker pull centos

新建容器并启动

代码语言:javascript复制
docker run [可选参数] image
#参数说明
--name="Name"    容器名字 tomcat01 tomcat02,用来区分容器
-d                后台方式运行
-it                使用交互方式运行,进入容器查看内容
-р                指定容器的端口-p 8080:8080
    -p ip:主机端口:容器端口
    -p主机端口:容器端口(常用)
    -p容器端口
    容器端口
-p                随机指定端口


# 测试,启动并进入容器
docker run -it centos /bin/bash

ls # 查看容器内的centos,与外界的已隔离开

列出所有的运行的容器

代码语言:javascript复制
docker ps 
   #列出当前正在运行的容器
-a #列出当前正在运行的容器 带出历史运行过的容器
-n=? #显示最近创建的容器
-q #只显示容器的编号

举例:
docker ps -aq

退出容器

代码语言:javascript复制
exit # 直接容器停止并退出  
Ctrl   P   Q # 容器不停止退出

删除容器

代码语言:javascript复制
docker rm 容器id    # 删除指定的容器,不能删除正在运行的容器,如果要强制删除,需加 -f 参数
docker rm -f $(docker ps -aq)    # 删除所有的容器
docker ps -a -q|xargs docker rm # 删除所有的容器

启动和停止容器的操作

代码语言:javascript复制
docker start 容器id # 启动容器
docker restart 容器id # 重启容器
docker stop 容器id # 停止容器
docker kill 容器id # 强制停止当前容器

常用其他命令

后台启动容器

代码语言:javascript复制
#命令docker run -d 镜像名
[root@FanJunyang /]# docker run -d centos
#问题docker ps,发现centos停止了
# 常见的坑, docker容器使用后台运行,就必须要有要一个前台进程, docker发现没有应用,就会自动停止
# nginx,容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了

查看日志

代码语言:javascript复制
docker logs

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

docker logs --help # 查看帮助

#自己编写一段she11脚本
[root@FanJunyang /# docker run -d centos /bin/sh-c "while true; do echo kuangshen;sleep 1;done"
#[root@FanJunyang /]# docker ps
CONTAINER ID
dce7b86171bf

IMAGE
centos

# 显示日志
-tf        # 显示日志
--tail number # number要显示日志条鼓
[root@FanJunyang /]# docker logs -tf --tail 10 dce7b86171bf

查看容器中的进程信息

代码语言:javascript复制
docker top 容器id

查看镜像的元数据

代码语言:javascript复制
docker inspect 容器id

进入当前正在运行的容器

代码语言:javascript复制
#我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置
# 方式一
docker exec -it 容器id /bin/bash

# 方式二
docker attach 容器id 
# 正在执行当前的代码


# docker exec 进入容器后开启一个新的终端,可以在里面操作(常用)
# docker attach 进入容器正在执行的终端,不会启动新的进程!

注:不管容器有没有启动,拷贝命令都是生效的

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

代码语言:javascript复制
docker cp 容器id:容器内路径 目的的主机路径

# 测试  
docker cp 容器id:/home/test.js /home

从主机内拷贝文件到容器里

代码语言:javascript复制
docker cp 主机路径/文件名 容器名(或者id):容器路径

0 人点赞