憨豆说安全 · 2020年08月11日

云芯一号教程 - Docker安装及基础使用教程

  Docker是一个开源的基于LXC的高级容器引擎,我们可以把应用以及依赖包打包到一个镜像中,发布到支持Docker的 Linux或Windows 机器上,实现虚拟化。
  Docker采用C/S架构,由4个部分组成:Docker Client客户端、Docker Daemon守护进程、Docker Image镜像、Docker Container容器。Docker Client客户端为用户提供一系列可执行命令,用户可用这些命令跟Docker Daemon交互;Docker Daemon作为服务端,一般后台运行,等待并处理来自客户端的请求,如创建、运行容器等。Docker Image镜像和Docker Container容器类似于面向对象编程中的类和对象,Docker Container容器是通过Docker Image镜像来创建的。

1.安装Docker

  sudo apt-get install docker-ce docker-ce-cli containerd.io  

  安装完成后,可以看一下docker的版本来确认安装是否成功。

  jishu@Jishu:~/debs$ docker -v
  Docker version 19.03.8, build afacb8b

2.Docker常用命令
2.1 Docker环境信息
2.1.1 Docker环境信息查询

  docker info

2.1.2 Docker版本查询

  docker version

2.2 image操作
2.2.1 搜索images

  docker search [imageName]

2.2.2 下载images

  docker pull  [images]:[version]

2.2.3 查看images

  docker images

2.2.4 删除images

  docker rmi [imageID]

2.3 Container操作
2.3.1 创建Container

  docker create --name [containerName] [images]:[version]

2.3.2 运行Container

  docker run [OPTIONS] [images]:[version] [COMMAND] [ARG...]

  OPTIONS参数说明:
  -a: 指定标准输入输出内容类型,可选STDIN/STDOUT/STDERR三项
  -d: 后台运行容器,并返回容器ID
  -i: 以交互模式运行容器,通常与-t同时使用
  -P: 随机端口映射,容器内部端口随机映射到主机的端口
  -p: 指定端口映射,格式为 主机端口:容器端口
  -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
  --name="containerName": 为容器指定一个名称
  --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致
  --dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致
  -h "hostname": 指定容器的hostname
  -e key="value": 设置环境变量
  --env=[]: 设置环境变量
  --env-file=[]: 从指定文件读入环境变量
  -m: 设置容器使用内存最大值
  --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container四种类型
  --link=[]: 添加链接到另一个容器
  --expose=[]: 开放一个端口或一组端口
  --volume, -v: 绑定一个卷

  举两个常用例子来说明docker run命令。
  1) 使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx。

  docker run --name mynginx -d nginx:latest

  2) 使用镜像nginx:latest,以后台模式启动一个容器,并将容器的 80 端口映射到主机的80端口,主机的目录 /data 映射到容器的 /data。

  docker run -p 80:80 -v /data:/data -d nginx:latest

2.3.3 在运行的Container中执行命令

  docker exec [OPTIONS] [containerName] [COMMAND] [ARG...]

  OPTIONS说明:
  -d: 分离模式,在后台运行
  -i: 保持STDIN打开
  -t: 分配一个伪终端

  在Container中开启一个交互模式的终端的例子。

  docker exec -it [containerName] /bin/bash

2.3.4 启动Container

  docker start [containerName]  

2.3.5 关闭Container

  docker stop [containerName]  

2.3.6 重启Container

  docker restart [containerName]  

2.3.7 杀掉运行中的Container

  docker kill [containerName]  

2.3.8 删除Container

  docker rm [containerID]  

2.3.9 列出所有Container

  docker ps -a  

2.3.9 向容器指定目录拷贝文件

  docker cp [YourHostFilePath] [containerID]:[DockerPath]  

2.4 image制作和提交
2.4.1 container打包成image

  docker commit -a "author" -m "comments" [containerID] [ImageName]:[Version]

  其中"-a"和"-m"参数可以不添加。

2.4.2 提交image

  docker push [ImageID] [repertory_address]







推荐阅读
关注数
4271
内容数
71
低成本Arm微服务器开发平台“云芯1号”教程及应用,欢迎关注
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息