• Docker是什么?
Docker是基于Go语言实现的云开源项目,诞生于2013年初,最初是dotCloud公司发起。
Docker通过对应用组件的封装、分发、部署、运行等生命周期的管理,达到应用组件级别的“一次封装,到处运行”。这里应用组件,即可以是Web应用,也可以是一套数据库服务,甚至是一个操作系统或编译器。
Docker由镜像(Image)、容器(Container)、仓库(Repository) 三大核心组成。
镜像是静态的,你不能对他操作,只能pull别人的镜像或者push自己的镜像。
容器可以理解为镜像的动态状态, 如果要保存修改,就需要将当前容器封装成一个新的镜像,这样下次启动这个新的镜像后之前作出的修改还都在. Docker中的仓库很像git的代码仓库,你可以pull自己之前push到自己仓库的镜像到本地,也可以pull别人push到公共仓库的镜像到自己本地。说白了就是百度云盘.
-
docker 与虚拟机的比较表
-
docker的优点
-
-
docker的安装方式
docker的安装方式通常有2种方式: 使用bin文件和源的方式
下面只介绍源的方式。 -
参考文档
https://docs.docker.com/install/linux/docker-ce/ubuntu/#set-up-the-repository
For more examples and ideas, visit: https://docs.docker.com/get-started
https://www.simapple.com -
docker安装
环境: ubuntu 16.04 64bit
1,移除旧版本
sudo apt-get remove docker docker-engine docker.io
2,添加Docker官方GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
3,添加稳定版的仓库源
sudo add-apt-repository
“deb [arch=amd64] https://download.docker.com/linux/ubuntu
$(lsb_release -cs) stable”
4,更新源
sudo apt-get update
5,安装
最新版本:sudo apt-get install docker-ce
指定版本:sudo apt-get install docker-ce=5:18.09.03-0ubuntu-xenial
通过apt-cache madison docker-ce,查看所有版本。
6,查看Docker版本信息
sudo docker version
sudo docker -v
7,验证docker是否正确被安装
sudo docker run hello-world (直接运行即可 自动从服务器上拉取demo镜像)
正确结果如下:
…
Hello from Docker!
…
到此docker已成功安装。
• pull第一个镜像下来
拉取官方最新版的ubuntu镜像:
docker pull ubuntu:latest
其中的latest是一个标签(tag),表示是当前最新版本。
实际上相当于docker pull registry.hub.docker.com/ubuntu:latest命令,
即从注册服务器registry.hub.docker.com中的名为ubuntu的仓库中下载标签为latest的镜像。
• 启动镜像
1,run:创建并启动容器, 第一次必须使用run,以后就只要使用start.
sudo docker run -it 镜像名 /bin/bash
-it 表示运行在交互模式,是-i -t的缩写,即-it是两个参数:-i和-t。前者表示打开并保持stdout,
后者表示分配一个终端(pseudo-tty)一般这个模式就是可以启动bash,然后和容器有命令行的交互.
2,start: 只启动容器,
sudo docker start -ai brave_morse
其中“brave_morse” 是容器名,通过docker ps -l 得到.
-
• 在容器安装所需软件,装完想保存环境?commit帮你
如: apt-get install vim
所有软件安装完成后,commit
sudo docker commit <container_id> <image_name>
或:
root@aa97ba3292ce:/#exit //先退出容器
~$ docker commit -m “ubuntu with vim” -a “root” aa97ba3292ce root/ubuntu:vim
其中,-m指定说明信息;-a指定用户名息;aa97ba3292ce代表容器的id;
root/ubuntu:vim指定目标镜像的用户名、仓库名和 tag 信息。 -
• 分享镜像
使用上面生成的new_image.tar
sudo docker load -i new_image.tar
sudo docker ps -l
sudo docker run -it ubuntu /bin/sh
其中ubuntu为镜像名。 -
• configure docker start on boot
sudo systemctl enable docker -
• Docker命令图
-
Docker命令用法→镜像
创建镜像
1、基于已有的镜像容器创建
sudo docker commit [options] container[repository]
option:-a, --author=“” 作者信息,估计需要账号
-m,–message=“” 提交信息 -p, --pause=true 提交时暂停容器运行
2、基于本地模板导入创建
sudo docker load < ***.tar --本地模板文件tar
或 sudo docker load -i ***.tar
// 其相反功能为:
sudo docker save image_name -o ***.tar
3、基于Dockerfile文件构建镜像
docker build –t image-name basedir
basedir 即dockerfile 所在的目录 -
Docker命令用法→删除镜像
删除镜像
docker rmi image
docker rmi –f image –强制删除镜像
其中image可以为标签或者ID
注意: 用docker rmi删除镜像时,首先删除容器,再删除镜像。
或保存为一个tar文件:
docker save image_name -o yout.tar -
Docker命令用法→容器
创建 |启动容器
docker create image 创建的容器是停止状态
docker start/stopcontainer_id启动/停止容器
docker run image创建并启动容器
删除容器:docker rm stopcontainer_id
备注:image-可以为镜像标签或Id container_id为容器id -
查询当前运行的镜像
docker ps -l -
列出所有镜像
docker images -
• docker 帮助
docker help
docker help cmd -
• docker save load export import区别:
export: 导出容器(不是镜像)
docker export <容器ID> -o my.tar
save: 导出镜像(不是容器)
docker save ubuntu -o my.tar
load/ save 功能一样
docker load -i my.tar -
Dockerfile文件
待续…