Docker使用基础

强颜欢笑 提交于 2019-12-20 09:58:24


docker docs

docker 学习方法

学习docker需要掌握以下内容

  • 什么是docker?
  • 什么是docker的镜像和容器?它们有什么关系?
  • docker的基本操作
  • docker的命令

学习docker的命令

两种途径:

  1. 查看docker docs里面有详细说明 Reference-CommondLines
  2. 使用docker --help 以及 docker COMMOND --help

认识docker

Docker是一个用于开发、交付和运行应用程序的开放平台.Docker平台提供了“容器”,容器可以提供一个类似沙箱的隔离环境,主机可以运行多个容器,容器间是独立的互不干扰.
docker engine

图 Docker Engine

镜像

Image类似于虚拟机的镜像,是一个包含有文件系统的面向Docker引擎的只读模版.任何应用程序运行都需要环境,Image就是用来提供这种环境的.

容器

  • 容器在Linux上本地运行,并与其他容器共享主机内核.
  • 类似于一个轻量级的沙盒,可以将其看作一个极简的Linux的系统环境.Docker engine利用containers运行、隔离各个应用.
  • 容器是镜像创建的应用实例,可以创建、启动、停止、删除容器.
  • 各个容器相互隔离
  • 镜像本身是只读的,容器从镜像启动时,Docker会在image的上层创建一个可写层,镜像不可变!!

也就是说,如果我使用docker使用linux,对其的所有操作并不会改变)
不过可以将容器保存为一个新的镜像文件

容器和镜像的关系

通过iamge来创建一个相应的containers

常用操作

Docker容器使用

docker system info  (docker info)
docker                                        查看Docker Client所有命令选项
docker command --help                         深入了解指定Docker命令
docker pull ubuntu                            获取ubuntu image ubuntu可以替换为其他image
docker run -it ubuntu /bin/bash               启动image, -it参数 i指定交互操作 t终端方式启动 ubuntu name of image
docker ps -a                                  查看所有容器(启动的容器)
docker start [id or name]                     启动已停止运行的容器
docker stop [container id]                    停止一个容器
docker reset [container id]                   重启一个容器
docker attach [container id]                  使用-d参数时,容器启动进入后台,可通过该命令进入容器,之后使用exit,则会导致容器停止,故不推荐使用
docker exec [container id]                  和attach一样,但是exit后不会导致容器停止,仍会继续运行
docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 可以详细学习run命令(-p 参数可以设置端口,映射到docker主机的指定端口  -p 5000:80)

导出和导入容器

docker export [container id] > xxxx.tar   导出某个容器导本地  docker export 命令

docker rm -f [container id]               删除容器
docker container prune                    清理掉所有处于终止状态的容器
docker ps                                 查看正在运行的容器 可以使用参数-a

docker文件传输

step1:
docker ps -a                                         得到容器的短ID
setp2: 
docker inspect -f ‘{{}.Id}’ [container id or name]   得到容器的完整ID(可以使用短id)
step3:
docker cp 本地文件路径 ID全称:容器路径

ps:
也可以从容器向外传输文件
docker cp ID全称:容器路径 本地文件路径 

网络端口

docker port [container id or name]        查看指定container端口映射情况 

日志信息

docker logs -f [container id]             查看日志信息 

容器进程

docker top [container id]                 docker top 查看容器内部运行的进程

Docker镜像使用

运行容器时,镜像不存在则会从docker hub中下载

docker iamges                            列出本地主机上的镜像
docker pull                              下载指定镜像
docker search [name]                     搜索镜像
docker rmi [name]                        删除指定image

如果现有镜像不满足使用,可以自己创建镜像:

docker commit -m=‘描述信息’ -a=‘author’ [container id] [new name]   更新images 会创建一个新的进行 new name 为镜像名称 格式为 仓库名称:TAG

也可以通过后docker build 命令创建一个新的镜像,但需要创建一个Dockerfile文件 来告诉Docker如何构建image
docker build 可以自行查阅使用方法

set up image tag

docker tag [image id] [repository name:tag]

配置网络

网络驱动程序

名称 简介 适用范围
bridge 默认的网络驱动程序 Bridge networks are usually used when your applications run in standalone containers that need to communicate. 当多个容器在同一docker主机上运行并需要通信时
host host直接使用主机网络 网络堆栈不应与Docker主机隔离时,但您希望容器的其他方面隔离时
overlay overlay network将多个docker守护程序连接在一起,并使群集服务能够相互通信 当您需要在不同Docker主机上运行的容器进行通信时,或者当多个应用程序使用集群服务一起工作时
macvlan Macvlan网络允许您将MAC地址分配给容器,使其在网络上显示为物理设备。Docker守护程序通过其MAC地址将流量路由到容器 当需要容器看起来像网络上的物理主机时

网桥网络

可以学到如何使用和管理bridge网络
网桥网络

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!