云芯一号教程 – 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]







发表评论

邮箱地址不会被公开。 必填项已用*标注