Docker快速入门
本文最后更新于865 天前,其中的信息可能已经过时,如有错误请评论留言

以下为Linux操作系统(CentOS),连接虚拟机的终端软件可以使用MobaXterm

基础命令:

PS:不知道命令具体怎么写,有什么参数的,可以后面接上--help查看(适用于所有命令)

  • 从镜像仓库拉取镜像到本地

    docker pull 镜像名
  • 本地上传镜像到镜像仓库

    docker push
  • 查看所有本地镜像

    docker images
  • 删除镜像

    docker rmi 镜像名:版本号
  • 自定义镜像:dockerfile文件使用如下命令构建

    docker build
  • 将镜像保存到本地变成压缩文件

    docker save -o 文件名.后缀 镜像名:版本号
  • 将压缩文件加载成镜像

    docker load
  • 创建并运行容器(运行后显示容器ID)

    docker run -d(后台运行) --name(容器名) -p(端口映射) 80:80(宿主机:容器内) -e(环境变量) 镜像名(不加版本默认最新)
  • 停止容器内的进程

    docker stop 容器名
  • 启动容器内停止的进程

    docker start
  • 查看当前容器的运行状态

    docker ps
  • 删除容器

    docker rm [-f(强制删除,运行中的也能删)]
  • 查看容器运行日志

    docker logs
  • 进入容器内部(进入后exit可以退出来)

    docker exec -it(添加一个可输入的终端) 容器名 bash(命令行)
  • 进入root目录下的.bashrc文件设置命令别名

    vi ~/.bashrc
    source ~/.bashrc  (使更改后的生效)
  • 查看容器详情

    docker inspect

数据卷

数据卷(volume)是一个虚拟目录,是容器内目录与宿主机目录之间映射的桥梁。映射示例参考下图:

image-20240402185058306

数据卷常见命令:

  • 创建数据卷

    docker volume create
  • 查看所有数据卷

    docker volume ls
  • 删除指定数据卷

    docker volume rm
  • 查看某个数据卷的详情

    docker volume inspect
  • 清除所有未使用的数据卷

    docker volume prune
  • 数据卷只能在创建容器时挂载,已经存在的容器没创建数据卷的,会默认创建一个匿名数据卷(名字是字母数字随机生成的),

    在执行docker run命令时,使用-v 数据卷:容器内目录可以完成数据卷挂载,

    创建容器时,如果挂载了数据卷且数据卷不存在,会自动创建数据卷,示例如下:

    docker run -d --name nginx -p 80:80 -v html:/user/share/nginx/html(镜像仓库里查的) nginx
  • 要打开宿主机文件操作数据卷时显示没有权限的话,需要切换到lib目录下 然后输入 chmod 777 docker 就可以有docker文件夹访问权限

  • 本地目录挂载:与数据卷挂载基本相同,也是在执行docker run命令时,使用-v 本地目录:容器内目录可以完成本地目录挂载,

    注意:本地目录必须以 “/” 或 “./” 开头,如果直接以名称开头,会被识别为数据卷而非本地目录,示例代码如下:

    本地目录要事先创建好,容器内目录去镜像仓库里查

image-20240404112542387


自定义镜像

先简单了解一下镜像的结构:一个完整的镜像由多个层(Layer)组成,像多张纸叠在一起组成书那样,每一层有其负责的功能,添加安装包、依赖、配置等,每次操作都会形成新的一层。多个镜像中会有相似或完全一致的层,称为基础镜像(BaseImage),如应用依赖的系统函数库、环境、配置、文件等,方便在构建时直接复用。此外,还有入口(Entrypoint),它是镜像运行入口,一般是程序启动的脚本和参数。

Dockerfile常见命令:

Dockerfile就是一个文本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像。将
来Docker可以根据Dockerfile帮我们构建镜像。常见指令如下:

  • FROM:指定基础镜像,示例:

    FROM centos:7
  • ENV:设置环境变量,示例:

    ENV key value
  • COPY:拷贝本地文件到镜像的指定目录,示例:

    COPY ./jre11.tar.gz /tmp
  • RUN:执行Linux的shell命令,一般是安装过程的命令,示例:

    RUN tar -zxvf /tmp/jre11.tar.gz && EXPORTS path=/tmp/jre11:$path
  • EXPOSE:指定容器运行时监听的端口,是给镜像使用者看的,示例:

    EXPOSE 8080
  • ENTRYPOINT:镜像中应用的启动命令,容器运行时调用,示例:

    ENTRYPOINT java -jar xx.jar
  • 构建镜像:

    docker build -t myImage:1.0 .(指当前目录)

    -t:给镜像起名,repository:tag 格式,tag默认latest


网络

加入自定义网络的容器才可以通过容器名相互访问

网络相关常见命令:

  • 创建一个网络

    docker network create
  • 查看所有网络

    docker network ls
  • 删除指定网络

    docker network rm
  • 清除未使用的网络

    docker network prune
  • 使指定容器连接加入某网络

    docker network connect
  • 使指定容器连接离开某网络

    docker network disconnect
  • 查看网络详细信息

    docker network inspect

DockerCompose

Docker Compose通过一个单独的docker-compose.yml模板文件(YAML格式)来定义一组相关联的应用容器,帮
助我们实现多个相互关联的Docker容器的快速部署,其格式与docker run十分相似,如下:

image-20240404181336970

docker compose 命令格式:docker compose [OPTIONS] [COMMAND]

Options:

  • -f:指定compose文件的路径和名称
  • -p:指定project名称

Commands:

  • up:创建并启动所有service容器
  • down:停止并移除所有容器、网络
  • ps:列出所有启动的容器
  • logs:查看指定容器的日志
  • stop:停止容器
  • start:启动容器
  • restart:重启容器
  • top:查看运行的进程
  • exec:在指定的运行中容器中执行命令

山水有相逢,我们江湖再见!じゃな~
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇