docker常用命令

帮助命令

docker --help   # 帮助命令
docker version  # 版本信息
docker info     # 显示系统信息,镜像和容器

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

镜像命令

查看所有镜像

[root@dev ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    feb5d9fea6a5   8 weeks ago    13.3kB
centos        latest    5d0da3dc9764   2 months ago   231MB

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

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

搜索镜像

[root@dev ~]# docker search mysql
NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   11700     [OK]
mariadb                           MariaDB Server is a high performing open sou…   4456      [OK]
mysql/mysql-server                Optimized MySQL Server Docker images. Create…   869       [OK]

# 可选项,通过搜藏来过滤
 --filter=START=3000  # 搜索出来的镜像是START大于3000的

下载镜像

[root@dev ~]# docker pull mysql
using default tag: latest # 如果不写tag,默认就是latest版本(最新版)

# 指定版本下载
docker pull mysql:5.7

删除镜像

docker rmi -f 镜像id  # 删除指定镜像
docker rmi -f 镜像id 镜像id  # 删除多个镜像
docker rmi -f $(docker images -aq)  # 删除全部镜像

容器命令

下载centos镜像测试

docker pull centos

新建容器并启动

docker run [可选参数] image

# 参数说明
--name="Name"  # 容器名称 tomcat01 tomcat02 用来区分容器
-d             # 后台方式运行
-it            # 使用交互方式运行
-p             # 指定容器的端口 -p 8080:8080
    -p ip:主机端口:容器端口
    -p 主机端口:容器端口(常用)
    -p 容器端口
    容器端口
-P             # 随机指定端口

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

列出所有的容器

docker ps  
      # 列出正在运行的容器
 -a   # 列出正在运行的和历史运行过的容器
 -n=? # 显示最近创建的几个容器
 -q   # 只显示容器的id

退出容器

exit          # 停止退出容器
Ctrl + q + p  # 容器不停止退出 

删除容器

docker rm 容器id                # 删除未运行的容器
docker rm -f 容器id             # 删除运行中的容器
docker rm -f $(docker ps -aq)   # 删除所有的容器

启动和停止容器

docker start 容器id    #启动容器
docker restart 容器id  #重启容器
docker stop 容器id     #停止容器
docker kill 容器id     #杀掉容器

常用其他命令

后台启动容器

docker run -d centos
# 再用docker ps 发现 centos 停止了
# 常见的坑,docker容器后台运行,必须要有前台进程,docker发现没有应用,就会自动停止

查看日志

docker logs -tf --tail 100 容器id

查看容器中的进程

docker top 容器id

查看镜像源数据

docker inspect 容器id

进入当前正在运行的容器

# 通常容器都是后台运行的,我们需要进去修改一些配置
docker exec -it 容器id /bin/bash  # 进入容器中打开一个新的终端,可以在里面操作(常用)
docker attach 容器id              # 进入容器正在执行的终端,不会打开新的

从容器内拷贝到主机上

docker cp 容器id:容器文件绝对路径 主机路径

commit镜像

docker commit  提交容器成为一个新的副本
# 命令和git原理类似
docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[TAG]

数据卷

方式一:直接使用命令来挂载 -v

docker run -it -v 主机目录:容器内目录
docker run -it -v /home/ceshi:/home centos /bin/bash

具名和匿名挂载

# 匿名挂载  -v 容器内路径
docker run -d -P --name nginx01 -v /etc/nginx nginx

# 查看所有的volume的情况
docker volume ls

# 具名挂载  -v 卷名:容器内路径
docker run -d -P --name nginx01 -v juming-nginx:/etc/nginx nginx

# 指定目录挂载 -v /宿主机路径:容器内路径

docker volume inspect juming-nginx # 查看挂载路径

# docker的工作目录 /var/lib/docker
# docker所有挂载均在工作目录的volumes下

Dockerfile

在宿主机创建dockerfile文件夹,在里面创建镜像脚本文件

# 镜像脚本文件
# volume01 volume02是我们生成镜像的时候匿名挂载的
FROM centos

VOLUME ["volume01","volume02"]

CMD echo "----end----"

CMD /bin/bash

# 这里的每个命令都是镜像的一层(命令大写)
docker build -f 镜像脚本文件绝对地址 -t 自己的镜像名:版本号 .

dockerfile指令

FROM  #基础镜像
MAINTAINER  #维护者信息,姓名+邮箱
RUN   #运行镜像
ADD   #添加内容,自动解压
WORKDIR   #镜像的工作目录
VOLUME   #挂载的目录
EXPOSE   #保留端口配置
CMD   #指定容器启动时候要运行的命令,只有最后一个生效,可被替代
ENTRYPOINT   #指定容器启动时候要运行的命令,可追加命令
COPY   #类似ADD,将我们的文件拷贝到镜像中
ENV   #构建时候设置环境变量

数据卷容器

docker run -it --name docker02 --volumes-from docker01 镜像id
posted @ 2021-11-19 16:41  烟锁池塘柳12F  阅读(44)  评论(0)    收藏  举报