关于docker
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
Ubuntu下载安装docker
apt install docker.io
Docker构建一个自己的Ubuntu镜像
- 查看可以pull的docker镜像
docker search ubuntu
- pull一个镜像
docker pull ubuntu docker images
- 以前台的方式为刚刚下载的ubuntu创建容器,并进入shell
docker run -it ubuntu /bin/bash
- 给容器换源
先查看当前ubuntu版本
cat /etc/issue
先删除原来国外的源文件source.list
rm /etc/apt/sources.list
创建一个新的文件,文件名还是source.list。因为Docker下的Ubuntu系统无vim和gedit等编辑器,需要我们使用cat命令批量写入多行内容到指定文件,如下所示。
cat>/etc/apt/sources.list<<EOF
上面这条命令表示输入了EOF三个字符后才结束输入。
执行完成上面的语句后就可以复制阿里云的源信息,然后以EOF这三个字符作为最后一行
Ubuntu20.04 deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
然后使用cat /etc/apt/sources.list输出文件信息,过程如下。
- 更新apt
使用如下命令更新apt
apt update
- 安装build-essential
使用如下命令安装build-essential
apt install build-essential
查看以下gcc版本,如果输出gcc版本则说明安装成功
gcc —version
- 生成镜像
我们需要基于当前已经配置好的容器生成镜像,方便后面操作。
不要退出当前容器,再新建一个终端,一下操作均在新终端下完成。
生成镜像命令
docker commit -m “description” -a “author” <容器id> repository:tag
- “description”:描述信息。
- “author”:作者名
- <容器id>:可以在旧终端那里看到,形如root@b4b27d66570a:/#。可以看到<容器id>是b4b27d66570a。
- reposiory:镜像仓库名,任取即可。
- tag:镜像标签名,任取即可。
本例中使用命令为:
docker commit -m “ubuntu 20.04 with aliyun and build-essential” -a “hyx” b4b27d66570a ying:Ubuntu20.04
执行完成后查看是否生成镜像
docker images
Docker常见命令
docker命令 | 作用 |
---|---|
docker search XXX | 查找XXX命令 |
docker pull XXX | 获取XXX镜像,默认是latest |
docker images | 查看当前的镜像 |
dockers rmi $(docker images -q) | 删除所有镜像 |
docker ps -a | 查看所有容器(包括已经停止的) |
docker run -t -i centos /bin/bash | 启动某个镜像 |
docker start/stop/rm CONTAINER ID | 开始/停止/删除某个容器 |
docker stop $(docker ps -aq) | 停止所有容器 |
docker rm $(docker ps -aq) | 删除所有容器 |
docker export | 导出docker export imageld > ubuntu.tar |
docker import | 导入镜像 docker import ubuntu.tar ubuntu:1.8丢弃所有的历史记录和元数据信息 |
docker load | 同 docker import 但保存所有的历史记录和元数据信息 |
docker login | 登录 |
docker logout | 登出 |
docker pause 容器名/容器ID | 暂停 |
docker unpause 容器名/容器ID | 从暂停继续 |
docker commit 容器名/容器ID | 将容器生成新的镜像 |
docker kill 容器名/容器ID | 强行停止容器 |
docker rename 容器名/容器ID | 重命名容器 |
docker push 镜像名/镜 像ID | 把镜像推到远程仓库便于使用 |