目 录CONTENT

文章目录

Docker基础使用

青云
2023-12-23 / 0 评论 / 0 点赞 / 46 阅读 / 8989 字
温馨提示:
本文最后更新于 2024-01-05,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

镜像相关

docker hub

查找指定包

docker search {packageName}

search.png

下载指定镜像

docker pull {packageName}

pull.png

下载指定版本镜像

docker pull {packageName}:{version}

pull-version.png

查看当前所有镜像

docker images

images.png

查看指定镜像的所有版本

docker images {packageName}

images-container.png

删除指定镜像

注意,涉及的删除操作都是不可逆的,请谨慎操作。在删除镜像之前,最好先备份重要的镜像。

docker rmi {packageName}

rmi.png

注意:如果当前想要删除的镜像已有创建的容器,则需要删除容器之后才允许删除

not-delete.png

强制删除存在镜像的容器

docker rmi -f {packageName}

立即删除所有未使用的镜像

docker image prune (-f)

容器

运行容器

mysql 举例

docker run -itd --name mysql-test -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
分解一下命令:
docker run  # 用于根据指定的镜像创建和启动一个新的容器
-i # (--interactive): 保持容器的标准输入打开,以交互模式运行容器,通常与 -t 同时使用;
-t # (--tty): 为容器重新分配一个伪输入终端,通常与 -i 一起使用来提供交互式 shell;
-d # (--detach): 后台运行容器,并打印容器ID;
--name mysql-test # 设置容器名,不可重复
-p 3307:3306 # 将容器内部的端口 3306 映射到宿主机的端口 3307(因为我本地已经存在一个3306的mysql端口占用,所以此处我使用3307做演示,同时也更方便展示两者代表的环境)
-e MYSQL_ROOT_PASSWORD=123456 # environment, 设置容器环境变量
mysql # 指定要使用的镜像名称

该行命令将创建一个名为 mysql-test 的新容器,从 mysql 镜像启动,设置 root 用户的密码为 123456,并将容器的 3306 端口映射到宿主机的 3307 端口上。

查看当前运行的容器

docker ps

ps.png

查看查看当前所有容器

docker ps -a

ps-a.png

查看指定容器日志

docker logs {CONTAINER_ID/NAMES}

docker logs [OPTIONS] {CONTAINER_ID/NAMES}
  Options:
        --details        显示更多的信息
    -f, --follow         跟踪实时日志
        --since string   显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
        --tail string    从日志末尾显示多少行日志, 默认是all
    -t, --timestamps     显示时间戳
        --until string   显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)

例子:

  • 查看指定时间后的日志,只显示最后100行:
    docker logs -f -t --since="2018-02-08" --tail=100 {CONTAINER_ID/NAMES}
    
  • 查看最近30分钟的日志:
    docker logs --since 30m {CONTAINER_ID/NAMES}
    
  • 查看某时间之后的日志:
    docker logs -t --since="2018-02-08T13:23:37" {CONTAINER_ID/NAMES}
    
  • 查看某时间段日志:
  docker logs -t --since="2018-02-08T13:23:37" --until "2018-02-09T12:23:37" {CONTAINER_ID/NAMES}
  • 查看实时日志
    docker logs -f {CONTAINER_ID/NAMES}
    

容器自动启动

docker run --restart=always {CONTAINER_ID/NAMES}
docker update --restart=always {CONTAINER_ID/NAMES}

进入容器

在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:

  • docker attach
  • docker exec:推荐大家使用 docker exec 命令,因为此命令会退出容器终端,但不会导致容器的停止。

attach 命令

docker attach {CONTAINER_ID/NAMES}

docker-attach.png

注意: 如果从这个容器退出,会导致容器的停止。

exec 命令

docker exec -it {CONTAINER_ID/NAMES} /bin/bash

docker-exec.png

停止容器

docker stop {CONTAINER_ID/NAMES}

stop.png

启动容器

docker start {CONTAINER_ID/NAMES}

start-contain.png

重启容器

docker restart {CONTAINER_ID/NAMES}

导出和导入容器

导出容器

如果要导出本地某个容器,可以使用 docker export 命令。

docker export {CONTAINER_ID/NAMES} > {filename.tar}

导出容器 1e560fca3906 快照到本地文件 ubuntu.tar。

docker-export.png

导入容器快照

可以使用 docker import 从容器快照文件中再导入为镜像

cat docker/ubuntu.tar | docker import - test/ubuntu:v1

以下实例将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1

docker-import.png

删除容器

安全操作下,只有已停止的容器才允许删除;
注意,涉及的删除操作都是不可逆的,请谨慎操作。在删除镜像之前,最好先备份重要的镜像。

docker stop {CONTAINER_ID/NAMES} && docker rm {CONTAINER_ID/NAMES}

stop-rm.png

未停止的容器无法删除

not-rm-contain.png

强制删除容器

docker rm -i {CONTAINER_ID/NAMES}

rm-fcontainer.png

其他

Docker-Compose

0

评论区