Docker常用指令

Docker 是一个开源的容器引擎, 它可以帮助我们更快地交付应用。 Docker 可将应用程序和
基础设施层隔离, 并且能将基础设施当作程序一样进行管理。 使用 Docker, 可更快地打包、
测试以及部署应用程序, 并可减少从编写到部署运行代码的周期。

Docker 官方网站: https://www.docker.com/
Docker架构

Docker概念简介

1.Docker daemon(Docker 守护进程)
Docker daemon 是一个运行在宿主机(DOCKER_HOST) 的后台进程。 我们可通过 Docker 客
户端与之通信。

2、 Client(Docker 客户端)
Docker 客户端是 Docker 的用户界面, 它可以接受用户命令和配置标识, 并与 Docker
daemon 通信。 图中, docker build 等都是 Docker 的相关命令。

3、 Images(Docker 镜像)
Docker 镜像是一个只读模板, 它包含创建 Docker 容器的说明。 它和系统安装光盘有点像—
—我们使用系统安装光盘安装系统, 同理, 我们使用 Docker 镜像运行 Docker 镜像中的程序。

4、 Container(容器)
容器是镜像的可运行实例。镜像和容器的关系有点类似于面向对象中,类和对象的关系。
我们可通过 Docker API 或者 CLI 命令来启停、 移动、 删除容器。

5、 Registry(仓库)
Docker Registry 是一个集中存储与分发镜像的服务。 我们构建完 Docker 镜像后, 就可在当前
宿主机上运行。 但如果想要在其他机器上运行这个镜像, 我们就需要手动拷贝。 此时, 我们
可借助 Docker Registry 来避免镜像的手动拷贝。
一个 Docker Registry 可包含多个 Docker 仓库; 每个仓库可包含多个镜像标签; 每个标签对
应一个 Docker 镜像。 这跟 Maven 的仓库有点类似, 如果把 Docker Registry 比作 Maven 仓库
的话, 那么 Docker 仓库就可理解为某 jar 包的路径, 而镜像标签则可理解为 jar 包的版本号

指令

1、Docker 安装配置

yum install -y docker-ce-18.06.2.ce-3.el7.x86_64.rpm
systemctl start docker
systemctl stop docker
systemctl restart docker
systemctl status docker
systemctl daemon-reload 重启 Docker 守护进程
docker info 验证Docker 是否安装成功
/etc/docker/daemon.json 配置镜像加速器,倾斜字为阿里分配,每人不同

{
“registry-mirrors”: [“https://xxx91a3d.mirror.aliyuncs.com”]
}

修改保存后重启 Docker 守护进程和服务

2、Docker 镜像操作常用指令

2.1、搜索镜像

docker search tomcat

  • NAME: 仓库名称
    DESCRIPTION: 镜像描述
    STARS: 用户评价, 反应一个镜像的受欢迎程度
    OFFICIAL: 是否官方
    AUTOMATED: 自动构建, 表示该镜像由 Docker Hub 自动构建流程创建的

2.2、下载镜像

docker pull java 从 Docker Hub 中的 java 仓库下载最新版本的 Java 镜像
docker pull daocloud.io/library/java:8u40-b09
从指定的 Docker Registry 中下载标签为 8 的 Java 镜像

2.3、列出镜像

docker images

  • REPOSITORY: 镜像所在的仓库名称
    TAG: 镜像标签
    IMAGE ID: 镜像 ID
    CREATED: 镜像的创建日期(不是获取该镜像的日期)
    SIZE: 镜像大小
    这些镜像都是存储在 Docker 宿主机的/var/lib/docker 目录下

2.4、删除指定镜像

docker rmi xxx

2.5、保存、加载镜像

  • docker save -o centos7.tar centos:7
    -o 参数后面跟要把镜像保存的文件路径和名称
  • docker load -i centos7.tar
    -i 参数后面跟要加载的文件路径和名称

3、Docker 容器操作常用指令

3.1、新建并启动一个容器

  • docker run -di --name jdk1 java:8
    ① -i 选项: 表示运行容器
    ② -d 选项: 表示后台运行
    ③ -t: 表示容器启动后会进入其命令行。 加入这两个参数后, 容器创建就能登录进去。 即
    分配一个伪终端。
    ④ -P 选项: 随机端口映射
    ⑤-p 选项: 表示端口映射, 前者是宿主机端口, 后者是容器内的映射端口。 可以使用多个
    -p 做多个端口映射
    ⑥–name : 指定容器的名称
    ⑦ –network 选项: 指定网络模式, 该选项有以下可选参数:
    –network=bridge: 默认选项, 表示连接到默认的网桥。
    –network=host: 容器使用宿主机的网络。
    –network=container:NAME_or_ID: 告诉 Docker 让新建的容器使用已有容器的网络配置。
    –network=none: 不配置该容器的网络, 用户可自定义网络配置。

3.2、列出容器

  • docker ps 列出运行中的容器 -a 列出所有容器 -q 已经退出的容器
    ① CONTAINER_ID: 表示容器 ID。
    ② IMAGE: 表示镜像名称。
    ③ COMMAND: 表示启动容器时运行的命令。
    ④ CREATED: 表示容器的创建时间。
    ⑤ STATUS: 表示容器运行的状态。 Up 表示运行中, Exited 表示已停止。
    ⑥ PORTS: 表示容器对外的端口号。
    ⑦ NAMES: 表示容器名称。 该名称默认由 Docker 自动生成, 也可使用 docker run 命令的–
    name 选项自行指定

3.3、启停容器

docker stop 784fd3b294d7 容器 ID, 也可使用 容器名称 来停止指定容器
docker kill 784fd3b294d7 强制停止容器 一个或更多运行着的
docker start 784fd3b294d7
docker restart 784fd3b294d7
docker exec -it 784fd3b294d7 /bin/bash 进入容器

3.4、文件拷贝

docker cp /usr/local/1.txt c1:/usr/local 把本地文件拷贝到容器指定目录
docker cp c1:/usr/local/1.txt /usr/local 把容器中的文件拷贝到宿主机指定目录

3.5、目录挂载

我们可以在创建容器的时候, 将宿主机的目录与容器内的目录进行映射, 这样我们就可以通
过修改宿主机某个目录的文件从而去影响容器

  • docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos2 centos:7
    参数说明: 创建容器 添加-v 参数 后边为 宿主机目录:容器目录
  • docker run -di -v /usr/…:/usr… --privileged=true --name=mycentos2 centos:7
    共享多级的目录, 出现权限不足的提示 Permission denied
    解决,添加参数 --privileged=true

3.6、 删除容器

docker rm 784fd3b294d7 只能删除已停止的容器, 如需删除正在运行的容器, 可使用-f 参数
docker rm -f $(docker ps -a -q) 删除所有的容器

3.7、导入、 导出容器

docker export --output=“latest.tar” centos1 将容器导出成一个压缩包文件
docker import nginx2.tar nginx 从归档文件导入内容并创建镜像

3.8、查看容器 ip

docker inspect mycentos
docker inspect --format=’{{.NetworkSettings.IPAddress}}’ mycentos 输出 IP 地址

3.9、查看容器日志

docker logs [options] 容器获取容器的日志
docker logs --tail=“10” mytest
//–tail=“10” 查看最后 10 行

3.10、退出容器 exit

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值