上一篇文章我讲述了Docker的一些基本概念,包括Docker的三大核心知识、Docker和传统虚拟技术的区别等。
这一篇我将介绍下Docker的安装和使用方式
首先是如何安装Docker,下面我将介绍在两种Linux内核操作系统下安装Docker
其一是Ubuntu/Debian 安装 Docker CE:
$ sudo apt-get update
$ sudo apt-get install docker-ce
启动Docker
$ sudo systemctl enable docker
$ sudo systemctl start docker
建立 docker 组:
$ sudo groupadd docker
将当前用户加入 docker 组:
$ sudo usermod -aG docker $USER
其二是Centos安装Docker CE:
$ sudo yum makecache fast
$ sudo yum install docker-ce
启动Docker
$ sudo systemctl enable docker
$ sudo systemctl start docker
建立 docker 组:
$ sudo groupadd docker
将当前用户加入 docker 组:
$ sudo usermod -aG docker $USER
安装好Docker后,我们看一下Docker使用的一些指令:
首先是如何操作镜像:
从仓库下载镜像文件:
docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
如docker pull ubuntu:18.04
查看本地的镜像列表:
docker image ls [选项]
选项中可填写指定的镜像名用以列出部分镜像
删除本地镜像:
docker image rm [选项] <镜像1> [<镜像2> ...]
使用Dockerfile定制镜像:
Dockerfile 中每一个指令都会建立一层,RUN 也不例外。每一个 RUN 的行为,就和刚才我们手工建立镜像的过程一样:新建立一层,在其上执行这些命令,执行结束后,commit 这一层的修改,构成新的镜像。
类似下面的文件内容
FROM nginx
RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html
命令介绍:
FROM 指定基础镜像
COPY 拷贝文件
RUN 执行命令
EXPOSE 暴露端口
CMD 容器启动命令
ENV 设置环境变量
ENTRYPOINT 入口点
WORKDIR 指定工作目录
USER 指定当前用户
构建镜像:
docker build [选项] <上下文路径/URL/->
每个镜像都由很多层次构成,Docker 使用 Union FS 将这些不同的层结合到一个镜像中去。
通常 Union FS 有两个用途, 一方面可以实现不借助 LVM、RAID 将多个 disk 挂到同一个目录下,另一个更常用的就是将一个只读的分支和一个可写的分支联合在一起,Live CD 正是基于此方法可以允许在镜像不变的基础上允许用户在其上进行一些写操作。
Docker 在 AUFS 上构建的容器也是利用了类似的原理。
之后是操作容器:
新建并启动:
docker run container
启动已终止的容器:
docker container start
更多的时候,需要让 Docker 在后台运行而不是直接把执行命令的结果输出在当前宿主机下。此时,可以通过添加 -d 参数来实现。
要获取容器的输出信息,可以通过 docker container logs 命令。
终止容器:
docker container stop
导出容器:
docker export 7691a814370e > ubuntu.tar
导入容器:
cat ubuntu.tar | docker import - test/ubuntu:v1.0
删除容器:
docker container rm 容器名
清楚所有处于终止态的容器:
docker container prune
以上只是简单介绍了Docker操作镜像和容器的命令,适用于操作单个服务,如果一个项目需要同时启动多个服务,那么则需要用到docker-compose工具,在后续的章节中我会详细的介绍怎么使用docker-compose。
参考文章:Docker底层实现、这可能是最为详细的Docker入门吐血总结
未完待续。。。