getting-started-with-docker
2019-10-10 09:38:10 0 举报
AI智能生成
登录查看完整内容
讲述 docker 相关知识点, 愿你不要从入门到"放弃"
作者其他创作
大纲/内容
docker 入门
安装
About Docker Engine - Community
为什么
更高效的利用系统资源
不需要进行硬件虚拟以及运行完整操作系统等额外开销
更快速的启动时间
运行环境一致
不会再出现 「这段代码在我机器上没问题啊」 这类问题
持续交付和部署
运维人员在生产环境中快速部署该镜像,可以持续部署(Continuous Delivery/Deployment) 系统进行自动部署
平台迁移
微服务
概念
镜像
容器运行时所需的程序、库、资源、配置等文件
运行时准备的一些配置参数(如匿名卷、环境变量、用户等)
在构建镜像的时,每一层尽量只包含该层需要添加的东西,在该层构建结束前清理掉所有额外的文件
容器
容器是镜像运行时的实体,可以被创建、启动、停止、删除、暂停
每一个容器运行时,是以镜像为基础层,在其上创建一个当前容器的存储层,我们可以称这个为容器运行时读写而准备的存储层为 容器存储层
持久存储: 启动时候绑定 Volume
仓库
可以使用 Docker 官方提供的 Docker Registry 来部署私有 Registry
官方 Docker Registry 镜像
Docker 服务端
Docker 客户端
Docker 仓库
类似于 Github 上的一个个项目一样
Docker 顶层仓库
顶层仓库是由 Docker 公司和选定的能提供优质基础镜像的厂商管理
用户通常基于这些基础镜像构建自己的镜像
命令
创建
docker run
Run a command in a new container
基于镜像创建新容器,并运行命令
使用
创建一个具有交互 Shell 的容器: docker run -it ubuntu bash
指定主机名: docker run -h mwumli ubuntu hostname
指定容器名: docker run --name mwumli ubuntu ls
容器退出后自动删除: docker run --rm ubuntu ls
设置工作目录
docker run -w /usr/local ubuntu pwd
后台运行一个容器: docker run -d ubuntu /bin/sh -c \
数据共享
容器和宿主机
docker run -v /host-dir:/container-dir -v container-dir ubuntu touch share.txt
容器之间
docker run -it --volumes-from container debian /bin/bash
link 互联
docker run --rm --link redis:db -it ubuntu bash
启动
docker start
Start one or more stopped containers
启动一个已停止的容器
重新启动
docker restart
Restart one or more containers
停止运行中的容器,然后重新启动
列举
docker ps
List containers
列出所有运行状态的容器
列出所有容器
docker ps -a
列举所有已退出的容器ID
docker ps --filter=\"status=exited\" --format=\"{{.ID}}\"
停止
docker stop
Stop one or more running containers
本质是使用 docker kill 发送 SIGTERM 信号
暂停/取消暂停
docker pause
Pause all processes within one or more containers
docker unpause
杀死
docker kill
Kill one or more running containers
默认发送 SIGKILL 信号,可以指定其他信号
删除
docker rm
Remove one or more containers
删除所有已停止的容器: docker rm $(docker ps -a -q --filter=\"status=exited\")
日志
docker logs
Fetch the logs of a container
内部进程
docker top
Display the running processes of a container
运行新进程
docker exec
Run a command in a running container
信息
docker inspect
Return low-level information on Docker objects
获取实例日志路径: docker inspect --format='{{.LogPath}}' $INSTANCE_ID
获取实例IP地址: docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $INSTANCE_ID
获取实例镜像名: docker inspect --format='{{.Config.Image}}' $INSTANCE_ID
列出端口映射
docker port
导出
docker export
Export a container’s filesystem as a tar archive
将容器的文件系统保存为一个 tar 包
导入
docker import
I
将 docker export 导出的 tar 包导入为一个镜像
提交
docker commit
Create a new image from a container’s changes
docker rmi
Remove one or more images
docker images
List images
docker save
保存一个或多个镜像到一个 tar 包
docker load
Load an image from a tar archive or STDIN
拉取
docker pull
Pull an image or a repository from a registry
推送
docker push
Push an image or a repository to a registry
volume
docker volume
Manage volumes
docker volume create
docker volume rm
docker volume prune
docker volume ls
docker volume inspect
network
Manage networks
docker network
docker network create
Create a network
docker network rm
Remove one or more networks
docker network ls
List networks
docker network connect
Connect a container to a network
docker network disconnect
Disconnect a container from a network
docker network prune
Remove all unused networks
审查 docker 对象
镜像构建
白手起家
Create a base image
中途介入
docker build
准备构建指令 Dockerfile
Dockefile 示例
指定基础镜像: From ubuntu:14.04
触发器: ONBUILD [instruction]
设置元信息: LABEL author=MwumLi email=\"mwumli@hotmail.com\"
设置环境变量: ENV refreshed 2019-09-22
Environment replacement
指定卷: VOLUME /opt/data
指定运行用户: USER partick
复制文件到镜像中: ADD 或 COPY
运行命令: RUN apt-get update
暴露端口: EXPOSE 80
设置工作目录: WORKDIR /tmp
设置入口点: ENTRYPOINT [\"s3cmd\"]
设置启动命令: CMD echo 'docker setup'
忽略 .dockerignore
剔除不需要作为上下文传递给 Docker 引擎的. 加快构建速度
构建: 执行构建命令
基于构建缓存可以加快重新构建镜像速度
私有 Registry
Docker Official Images
Docker 远程 API
Engine API version history
通过调用 docker 远程 API 可以开发一些基于 docker 的自定义应用,比如 docker web 终端
使用 Docker Remote API 提供 Docker 远程终端服务
多 CPU 架构支持
Leverage multi-CPU architecture support
0 条评论
回复 删除
下一页