docker 的简单使用

简介: 前提:在一台已经安装了 docker 的机器上,即可使用 docker + 子命令的方式。通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community 。sudo docker run hello-worldDocker 允许你在容器内运行应用程序, 使用 docker run 命令来在容器内运行一个应用程序。输出 Hello world

前提:在一台已经安装了 docker 的机器上,即可使用 docker + 子命令的方式。


通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community 。


sudo docker run hello-world


Docker 允许你在容器内运行应用程序, 使用 docker run 命令来在容器内运行一个应用程序。


输出 Hello world


$ docker run ubuntu:15.10 /bin/echo "Hello world"
Hello world


  • -i    以交互模式运行容器,通常与 -t 同时使用;


  • -t    为容器重新分配一个伪输入终端,通常与 -i 同时使用;


  • -d    后台运行容器,并返回容器ID。加了 -d 参数默认不会进入容器,想要进入容器需要使用指令 docker exec。


注:加了 -d 参数默认不会进入容器,想要进入容器需要使用指令 docker exec。



我们通过 docker 的两个参数 -i -t,让 docker 运行的容器实现"对话"的能力:

docker run -i -t ubuntu:15.10 /bin/bash


或者 -i -t 连写 为 -it

docker run -it ubuntu:15.10 /bin/bash


启动容器(后台模式)

docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"


在输出中,我们没有看到期望的 "hello world",而是一串长字符. 这个长字符串叫做容器 ID,对每个容器来说都是唯一的,我们可以通过容器 ID 来查看对应的容器发生了什么。


docker ps 可以查看当前 docker 哪些容器在运行


在宿主主机内使用 docker logs 容器 id 命令,查看容器内的标准输出:

docker logs 2b1b7a428627


docker images 查看下载了哪些镜像


docker container ls 查看正在运行的容器


docker container ls -a 查看所有容器, 包含了已停止的容器


docker rm bdc8d8c475cb 删除容器, bdc8d8c475cb是容器id


docker rm -f 1e560fca3906 强制删除容器


指定容器 CONTAINER ID 启动容器


docker start <CONTAINER ID>


指定容器名称启动容器


docker start <CONTAINER NAME>


指定 CONTAINER ID 停止容器


docker stop <CONTAINER ID>


指定容器名称停止容器


docker stop <CONTAINER NAME>


指定容器 CONTAINER ID 重启容器


docker restart <CONTAINER ID>


指定容器名称重启容器


docker restart <CONTAINER NAME>


进入容器



docker attach 如果从这个容器退出,会导致容器的停止。


docker exec推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器

的停止。


docker exec -it 243c32535da7 /bin/bash


要退出终端,直接输入 exit  即可。


导出和导入容器


docker export 1e560fca3906 > ubuntu.tar


导入容器快照


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


ubuntu.tar 导入到镜像 test/ubuntu:v1:


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


此外,也可以通过指定 URL 或者某个目录来导入,例如:


docker import http://example.com/exampleimage.tgz example/imagerepo


离线镜像文件导入


内网环境没法 pull 镜像,但是 docker 本身可以将已有的镜像导出成 tar 文件,并且可以再次导入到 docker,利用这一点,可以实现离线镜像文件的下载。


找一台可以联网的 docker 机器,并 pull 下载需要的镜像文件。


然后使用如下命令将镜像文件导出:


docker save java:8 -o java.tar  #将 java 8的镜像导出成 tar 文件


将tar文件上传到内网docker服务器,使用如下命令导入镜像文件:


docker load -i java.tar


网络端口的快捷方式


通过 docker ps 命令可以查看到容器的端口映射,docker 还提供了另一个快捷方式 docker port,使用 docker port 可以查看指定 (ID 或者名字)容器的某个确定端口映射到宿主机的端口号。


docker port wizardly_chandrasekhar
5000/tcp -> 0.0.0.0:5000


查看 WEB 应用程序日志



docker logs [ID或者名字] 可以查看容器内部的标准输出。


docker logs -f bf08b7f2cd89
 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
192.168.239.1 - - [09/May/2016 16:30:37] "GET / HTTP/1.1" 200 -
192.168.239.1 - - [09/May/2016 16:30:37] "GET /favicon.ico HTTP/1.1" 404 -


-f: 让 docker logs 像使用 tail -f 一样来输出容器内部的标准输出。


查看 WEB 应用程序容器的进程



我们还可以使用 docker top 来查看容器内部运行的进程


docker top wizardly_chandrasekhar
UID     PID         PPID          ...       TIME                CMD
root    23245       23228         ...       00:00:00            python app.py


检查 WEB 应用程序



使用 docker inspect 来查看 Docker 的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息。


runoob@runoob:~$ docker inspect wizardly_chandrasekhar
[
    {
        "Id": "bf08b7f2cd897b5964943134aa6d373e355c286db9b9885b1f60b6e8f82b2b85",
        "Created": "2018-09-17T01:41:26.174228707Z",
        "Path": "python",
        "Args": [
            "app.py"
        ],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 23245,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2018-09-17T01:41:26.494185806Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
......


参考



docker 仓库


https://hub.docker.com/search?q=&type=image




目录
相关文章
|
7月前
|
Java Linux 应用服务中间件
Docker的基本使用 2
Docker的基本使用
115 1
|
存储 安全 Linux
Docker 离线安装与基本使用
Docker 离线安装与基本使用
1456 0
Docker 离线安装与基本使用
|
4月前
|
Ubuntu Linux Docker
Docker 安装与基本使用
Docker 安装与基本使用
60 0
|
4月前
|
关系型数据库 MySQL 应用服务中间件
Docker Compose 使用方法
Docker Compose 是一个用于定义和运行多个 Docker 容器的工具。它允许您通过一个单独的配置文件来定义多个容器、网络设置、存储卷等,从而简化了多容器应用的部署和管理过程。使用 Docker Compose,您可以轻松地创建和管理复杂的容器化应用程序,而无需手动管理每个容器。 Docker Compose 使用 yml文件来描述应用程序的配置。在这个yml 文件中,您可以定义各个服务(容器)的镜像、端口映射、环境变量、依赖关系等信息。然后,您只需要运行一个命令,Docker Compose 就会根据配置文件自动创建、启动和连接这些容器。
88 1
|
6月前
|
关系型数据库 MySQL 应用服务中间件
Docker基本使用
初识Docker 什么是Docker 微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。 分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。 在数百上千台服务中重复部署,环境不一定一致,会遇到各种问题 应用部署的环境问题 大型项目组件较多,运行环境也较为复杂,部署时会碰到一些问题: 依赖关系复杂,容易出现兼容性问题 开发、测试、生产环境有差异 例如一个项目中,部署时需要依赖于node.js、Redis、RabbitMQ、MySQL等,这些服务部署时所需要的函数库、依赖项各不相同,甚至会有冲突。给部署带来了极大的困难。 Docker解决依赖兼
29 1
|
7月前
|
Ubuntu NoSQL Linux
一文讲明Docker的基本使用,常见Docker命令使用 、Docker的安装使用等
1、Docker的基本概念 2、常用的Docker命令 3、虚拟机安装Docker
|
7月前
|
Ubuntu Linux 测试技术
Docker的基本使用 1
Docker的基本使用
91 1
|
10月前
|
关系型数据库 MySQL Shell
docker 基本使用
包含常用的 docker 命令以及一些常见镜像的使用。
98 0
|
负载均衡 NoSQL 关系型数据库
七、Docker-Compose简介和安装
七、Docker-Compose简介和安装
|
Ubuntu Shell 开发工具
Docker 应用使用演示 | 学习笔记
快速学习 Docker 应用使用演示
97 0
Docker 应用使用演示 | 学习笔记