Docker简介
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
Docker虚拟化原理
- Docker与虚拟机区别
- Docker组件
- Docker虚拟化原理
Docker核心概念
- 镜像(Images)
官方镜像库:https://hub.docker.com/ - 容器(Container)
镜像运行时的实例 - 客户端(Client)
- 主机(Host)
- Machine
- 仓库(Registry)
Docker安装与常用命令
安装
-
英语好的可以参考官方教程
-
英语不好,系统为ubuntu的,可以将下面命令依次执行:
$ sudo apt-get update
$ sudo apt-get install
apt-transport-https
ca-certificates
curl
gnupg-agent
software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88
$ sudo add-apt-repository
“deb [arch=amd64] https://download.docker.com/linux/ubuntu
$(lsb_release -cs)
stable”
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
咱也没文化,又不敢问,反正就是装好了。 -
如果是网不好的,那就花钱买个梯子。
-
如果是网不好的,有少钱的,私聊我可以给你一个co%rd@clo*ud的邀请码,告别等待。
安装验证
$ sudo docker run hello-world
如果你的主机也出现类似上图的信息,恭喜你,你可以用docker了。
常用命令
- 启动Docker
不同linux发行版本命令可能不一样
ubuntu 18.04:
$ sudo systemctl start docker
$ sudo systemctl enable docker
镜像命令
-
列举镜像
$ docker images
这条命令将会打印一个表格,列举本地image的信息。
每一项分别表示:镜像名称、镜像标签(一般为版本号)、镜像ID、镜像创建时间和镜像大小。 -
拉取镜像
$ docker pull RESPOSITRORY [TAG]
从镜像仓库https://hub.docker.com/中拉取或者更新指定镜像,可以使用 -a 下载全部镜像。 -
查找镜像
$ docker search RESOPSITORY
从镜像仓库https://hub.docker.com/查找镜像信息。 -
构建镜像
$ mkdir dockerlearn
$ cd dockerlearn
$ mkdir java
$ cd java
$ touch dockerfile
$ vim dockerfile
$ docker build -t java:v1 .
$ docker images
$ docker run java:v1 -
镜像标签
$ docker tag IMAGE ID IMAGE:newtagname
容器命令
- 运行一个容器:
$ docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
OPTIONS:
-d: 后台运行容器,返回容器ID
-i: 以交互模式运行容器,一般与-t一起
-t: 为容器重新分配一个伪输入终端,一般与-i一起,效果为,连接容器的shell
-p: 端口映射,格式:主机端口:容器端口
-v: 目录映射,格式:容器路径:主机路径,效果为,将主机路径目录挂载到容器路径目录上
–name=“cname”: 为容器指定一个名称
-h “mars”: 指定容器hostname
-m: 设置容器使用内存最大值
… - 列举正在运行的容器:
$ docker ps - 查看进程 docker top
$ docker top [NAMES ,CONTAINER ID] - 停止容器 docker stop
$ docker stop [NAMES ,CONTAINER ID] - 重启容器 docker start
$ docker start [NAMES ,CONTAINER ID] - 移除容器 docker rm
$ docker rm [NAMES ,CONTAINER ID]
有了这些基础知识,我们便能开始进行线上部署了。
Docker从上手到实践(实践)