Docker详细使用

Docker详细使用

文章目录

使用场景

以下场景使用的命令如果不知参数什么意思可以在下面【功能列表】中查询

docker安装

https://docs.docker.com/engine/install/

常用命令

帮助启动类命令

说明 命令
启动docker systemctl start docker
停止docker systemctl stop docker
重启docker systemctl restart docker
查看docker状态 systemctl status docker
开机启动 systemctl enable docker
查看docker概要信息 docker info
查看docker总体帮助文档 docker --help
查看docker命令帮助文档 docker 具体命令 --help

镜像命令

说明 命令
列出本地主机上的镜像 docker images
搜索镜像 docker search {镜像名字}
下载镜像 docker pull {镜像名字:版本}
删除镜像 docker rmi -f {镜像ID}

网络命令

说明 命令
查看网络 docker network ls
查看网络源数据 docker network inspect {网络名字}
删除网络 docker network rm {网络名字}
创建网络(默认创建的是bridge模式) docker network create {网络名字}

容器命令

说明 命令
列出当前所有正在运行的容器 docker ps
列出当前所有的容器(包含历史) docker ps -a
新建+启动容器 docker run(详细命令看下面)
启动已停止运行的容器 docker start {容器ID或者容器名}
停止容器 docker stop {容器ID或者容器名}
强制停止容器 docker kill {容器ID或容器名}
重启容器 docker restart {容器ID或者容器名}
删除已停止的容器 docker rm {容器ID}
查看容器日志 docker logs {容器ID}
查看容器内运行的进程 docker top {容器ID}
查看容器内部细节 docker inspect {容器ID}
进入正在运行的容器并以命令行交互 docker exec -it {容器ID} /bin/b}ash
从容器内拷贝文件到主机上 docker cp {容器ID:容器内路径} {主机路径}
从主机上拷贝文件到容器内 docker cp {主机路径} {容器ID:容器内路径}

新建+启动容器

shell 复制代码
# -i:以交互模式运行容器,通常与 -t 同时使用;
# -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
# -d:后台执行
# -p:指定端口映射
# --network:网络名,必须是已存在的,如果不存在需要先创建网络(详细可参考下面网络章节)
# -v 卷映射,将容器数据映射到本地(详细可参考下面存储(挂载本地)章节)
# --name:容器名
docker run -it -d \
-p {对外端口:程序端口} \
-v {本地目录或卷目录:容器程序目录} \
--network {网络名} \
--name={容器新名字} \
{容器名}

# 例子
docker run -it -d \
-p 9789:80 \
-v /sensorsdata/main/packages/test/nocobase:/app/nocobase  \
--network my-bridge-network \
--name=ubp_dev_c140_new_name \
ubp_dev_140

compose(服务编排)

以下命令需要在【docker-compose.yml】文件目录下执行

说明 命令
启动所有docker-compose服务并后台运行 docker compose up -d
停止并删除容器、网络、卷、镜像 docker compose down
进入容器实例内部 docker compose exec {docker-compose.yml文件中写的服务id} /bin/bash
展示当前docker-compose编排过的运行的所有容器 docker compose ps
展示当前docker-compose编排过的容器进程 docker compose top
查看容器输出日志 docker compose logs yml里面的服务id
检查配置 docker compose config
检查配置,有问题才有输出 docker compose config -q
重启服务 docker compose restart
启动服务 docker compose start
停止服务 docker compose stop

功能列表

存储(挂载本地)

映射,容器内的数据备份+持久化到本地主机目录

介绍

  • 分为目录挂载卷映射
  • 相同点
    • 都是将容器里的目录挂载到本地目录
    • 当被挂载的本地目录存在时使用本地目录下的内容,如果本地目录不存在则自动创建目录
  • 不同点
    • 目录挂载:本地挂载目录不存时会自动创建,**不会**将容器的挂载目录内容拷贝到本地
    • 卷映射:本地挂载目录不存时会自动创建,****将容器的挂载目录内容拷贝到本地

使用

⽬录挂载
shell 复制代码
# -v :挂载
# 	将docker容器的【/usr/share/nginx/html】目录挂载到本地【/tmp/nghtml】目录
-v /tmp/nghtml:/usr/share/nginx/html
卷映射
shell 复制代码
# -v :挂载
# 	将docker容器的【/etc/nginx】目录卷映射到【ngconf】卷中
-v ngconf:/etc/nginx

# 查看docker所有的卷
docker volume ls

# 查看这个卷挂载的详细信息(卷名称、卷挂载的本地目录)
# 	{VOLUME NAME}:卷名
docker volume inspect {VOLUME NAME}

网络

介绍

作用

  • 容器间的互联和通信以及端口映射
  • 容器IP变动时候可以通过服务名直接网络通信而不受到影响

模式介绍

  • bridge模式:让主机和容器之间可以通过网桥相互通信
    • 使用--network bridge指定,默认使用docker0
  • host模式:直接使用宿主机的 IP 地址与外界进行通信,不再需要额外进行NAT 转换
    • 使用--network host指定
  • none模式:不为Docker容器进行任何网络配置
    • 使用--network none指定
  • container模式:新创建的容器不会创建自己的网卡,配置自己的IP
    • 使用--network container:NAME或者容器ID指定

使用

  • bridge模式:使用--network bridge
  • host模式:使用--network host
  • none模式:使用--network none
  • container模式:使用--network container:NAME或者容器ID

Dockerfile

Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本。

https://docs.docker.com/reference/dockerfile/

Compose

https://docs.docker.com/reference/compose-file/

介绍

  • 实现对Docker容器集群的快速编排
  • Compose允许用户通过一个单独的docker-compose.yml模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)
  • 可以很容易地用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用的所有依赖,完成构建。Docker-Compose 解决了容器与容器之间如何管理编排的问题。

使用

步骤

  • 编写docker-compose.yml文件
  • 启动并运行整个应用程序,完成一键部署上线: docker-compose up -d
相关推荐
AlfredZhao8 小时前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户97183563346614 小时前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪16 小时前
linux 拷贝文件或目录到指定的位置
linux
大树881 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠1 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质1 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush41 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5201 天前
Linux 11 动态监控指令top
linux
Inhand陈工1 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
Alsn861 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker