的架构和底层技术
Platform
2.Docker Engine
3.Docker Architecture
4.底层技术支持
2. Docker Image概述
1.什么是image
2.查看本地image
的获取
Build from Dockerfile
Pull from Registry
3.DIY一个Base Image
1.查看已有镜像
2.创建一个目录叫hello-world,进入目录,创建一个C语言的hello world程序,
#include <stdio.h>
void main()
{
printf("Hello Docker\n");
}
3.下载gcc和glibc-static将编译成可执行文件hello
gcc -static -o hello
hello是可执行文件
4.创建一个Dockerfile文件
FROM scratch
ADD hello /
CMD ["/hello"]
5.使用Dockerfile构建image
docker build -t xiaopeng163/hello-world .
6.查看分层
docker history acca11e86101
7.执行
docker run xiaopeng163/hello-world
4.初识Container
1.什么是Container
2.查看本地正在运行的容器
3.查看当前所有的容器,包括正在运行的以及退出的
4.交互式运行容器的方法
5.删除容器
docker container rm 846b5efe98d4
删除容器时容器ID可简写
6.docker ps -a 等同于docker conatiner ls -a
7.docker rm 等同于docker container rm
8.docker images 等同于docker image ls
9.docker rmi 等同于 docker image rm
docker image rm 67759ccc6f1
docker rmi f2a91732366c
10.查看所有容器ID
11.删除所有容器
docker rm $(docker conatiner ls -aq)
12.删除所有已退出的容器
5.构建自己的Docker镜像
1.基于一个已经存在的container创建一个image (不提倡使用此方式)
docker commit xenodochial_pare xiaopeng163/centos-vim
2.通用Dockerfile创建image
mkdir docker-centos-vim
cd docker-centos-vim
创建一个Dockerfile
FROM centos
RUN yum install -y vim
通过Dockerfile构建image
docker build -t xiaopeng163/centos-vim-new .
语法梳理及最佳实践
尽量使用官方的image作为base image
2.LABEL
LABEL定义Metadata 版本、描述等等。
为了美观,复杂的RUN请用反斜线换行!避免无用分层,合并多条命令成一行!