作者主页:编程指南针

作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、腾讯课堂常驻讲师

主要内容:Java项目、Python项目、前端项目、人工智能与大数据、简历模板、学习资料、面试题库、技术互助

收藏点赞不迷路  关注作者有好处

文末获取源码 

1 辅助命令

安装完成辅助相关命令

docker version  --------------------------  查看docker的信息
docker info     --------------------------  查看更详细的信息
docker 命令 --help    --------------------------  帮助命令

2 Images 镜像命令

2.2.1 查看本机中所有镜像

docker images   --------------------------  列出本地所有镜像
    -a          列出所有镜像(包含中间映像层)
    -q          只显示镜像id

举例: docker images -q

2.2.2 搜索镜像

docker search [options] 镜像名 ------------------- 去dockerhub上查询当前镜像
    -s 指定值      列出收藏数不少于指定值的镜像
    --no-trunc    显示完整的镜像信息

2.2.3 从仓库下载镜像

docker pull 镜像名[:TAG|@DIGEST]   ----------------- 下载镜像

2.2.4 删除镜像

docker image rm 镜像名:tag | 镜像id  --------------------------  删除镜像
    -f  强制删除
简写:
docker rmi 镜像名:tag | 镜像id
  • ==举例==

    docker image rm nginx:latest
    docker image rm -f nginx:latest

3 Contrainer 容器命令

3.3.1 运行容器

docker run 镜像名|镜像id --------------------------  镜像名新建并启动容器
    --name                      别名为容器起一个名字
    -d                          启动守护式容器(在后台启动容器)
    -p                          映射端口号:原始端口号      指定端口号启动

  • 示例

docker run tomcat:8.5.72-jre8 ------ 通过外界无法访问到已经启动的tomcat
docker run -d -p 8081:8080 tomcat:8.5.72-jre8--------------映射端口号为8081访问tomcat
docker run -d -p 8081:8080 --name tomcat8.5_1 tomcat:8.5.72-jre8  映射端口后台运行并设置名称

注意事项: tomcat8.0 运行之后,外部可以直接访问到tomcat,而tomcat8.5 则不行,需要以下设置

  1. 关闭防火墙: service firewalld stop

  2. 使用 docker exec -it tomcat的CONTAINER ID /bin/bash使用ls -l查看目录

    docker exec -it 30a1b4a13697 /bin/bash
  3. 把webapps先改为webapps2防止命名冲突

    mv webapps webapps2
  4. 再把webapps.dist改成webapps

    mv webapps.dist webapps

3.3.2 查看运行的容器

docker ps       --------------------------列出所有正在运行的容器
    -a          正在运行的和历史运行过的容器
    -q          静默模式,只显示容器编号
    -qa         查看正在运行的和历史运行过的容器的id

3.3.3 停止|关闭|重启容器

docker start   容器名字或者容器id        --------------- 开启容器
docker restart 容器名或者容器id          --------------- 重启容器
docker stop    容器名或者容器id          ------------------ 正常停止容器运行
docker kill    容器名或者容器id          ------------------ 立即停止容器运行

run 和 start 区别 run: 创建新容器,第一次运行时才会有 start: 对于已停止容器,进行启动,而不是使用run重新创建新的容器

3.3.4 删除容器

docker rm  容器id和容器名             --------------------------  删除容器
docker rm -f 容器id和容器名          --------------------------  强制删除容器
docker rm -f $(docker ps -aq)        --------------------------  删除所有容器

3.3.5 查看容器的运行日志【掌握】

run新建了一个容器,返回一个id,docker ps 正在运行的容器。发现没有这个运行的容器。

在启动的时候出现问题了。出现了什么问题? 查看日志

查看日志主要是排查错误,容器启动的时候肯定会有一些问题。怎么排查,查看日志

docker logs [OPTIONS] 容器id或容器名  ------------------ 查看容器日志
    -t           加入时间戳
    -f           跟随最新的日志打印
    -tf          实时打印并加时间戳打印日志
    --tail   数字 显示最后多少条【了解】

3.3.6 查看容器内进程

docker top 容器id或者容器名        ------------------ 查看容器内的进程

3.3.7 进入容器内部

docker exec [options] 容器id 容器内命令 ------------------ 进入容器执行命令
    -i      以交互模式运行容器,通常与-t一起使用
    -t      分配一个伪终端    shell窗口   bash 
  • 举例

    docker exec -it 89bb7179729c bash ---进入容器内部,并与容器内命令终端进行交互

3.3.8 容器和宿主机之间复制文件

会用下面的数据卷的形式,进行目录的挂载

docker cp 文件|目录 容器id:容器路径           -----------------   将宿主机复制到容器内部
docker cp 容器id:容器内资源路径 宿主机目录路径  -----------------   将容器内资源拷贝到主机上

  • 将容器中的文件复制到主机上
    docker cp c278e8231630:/usr/local/tomcat/RUNNING.txt ./RUNNING.txt
  • 将主机上的文件复制到容器中
    docker cp ./aa.txt c278e8231630:/usr/local/tomcat/aa.txt

3.3.9 查看容器内部细节

docker inspect 容器id         ------------------ 查看容器内部细节

3.3.10 数据卷(volum)【重点】

容器中有一些配置信息,由docker挂载的。容器一但消失,配置相关信息将会消失,容器不会给我们持久化数据。

做了持久化之后,如果容器消失了,那我们做的持久化配置则不会消失。

把这个持久化的配置会放到linux中,而不是容器中

卷就是目录或文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过Union File System提供一些用于持续存储或共享数据的特性:

卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷

特点: 1:数据卷可在容器之间共享或重用数据 2:卷中的更改可以直接生效 3:数据卷中的更改不会包含在镜像的更新中 4:数据卷的生命周期一直持续到没有容器使用它为止

  • 语法
docker run -v 宿主机的路径|任意别名:/容器内的路径 镜像名

  • 自定义数据卷目录
    docker run -d -p 8085:8080 --name tomcat8.0_2 -v /usr/local/apache-tomcat-8.5.61/webapps/:/usr/local/tomcat/webapps tomcat: 8.5.72-jre8
  • 自动数据卷目录
    docker run -d -p 8086:8080 --name tomcat8.0_3 -v aa:/usr/local/tomcat/webapps tomcat:8.0-jre8

解释:

  1. aa代表一个数据卷名字,名称可以随便写,docker在不存在时自动创建这个数据卷同时自动映射宿主机中某个目录

  2. 同时在启动容器时会将aa对应容器目录中全部内容复制到aa映射目录中

注意 1.如果是宿主机路径必须是绝对路径,宿主机目录会覆盖容器内目录内容 2.如果是别名则会在docker运行容器时自动在宿主机中创建一个目录,并将容器目录文件复制到宿主机中

4 相关作品展示

基于Java开发、Python开发、PHP开发、C#开发等相关语言开发的实战项目

基于Nodejs、Vue等前端技术开发的前端实战项目

基于微信小程序和安卓APP应用开发的相关作品

基于51单片机等嵌入式物联网开发应用

基于各类算法实现的AI智能应用

基于大数据实现的各类数据管理和推荐系统

 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐