微信生活门户网站源码,怎么创建平台卖自己的产品,百度怎么做广告,梁山做网站的公司Docker 是1个开源的应用容器引擎#xff0c;基于Go 语言并遵从 Apache2.0 协议开源。 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中#xff0c;然后发布到任何流行的 Linux 机器上#xff0c;也可以实现虚拟化。 容器是完全使用沙箱机制#xff0c;相…Docker 是1个开源的应用容器引擎基于Go 语言并遵从 Apache2.0 协议开源。 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中然后发布到任何流行的 Linux 机器上也可以实现虚拟化。 容器是完全使用沙箱机制相互之间不会有任何接口类似 iPhone 的 app,更重要的是容器性能开销极低。
目录
一. 架构
1. 镜像
2. 容器
3. 仓库
二.使用
1. 镜像使用
1.1 查看镜像
1.2 创建镜像
1.3 查找镜像
1.4 删除镜像
1.5 创建镜像
1.6 设置镜像标签
2. 容器使用
2.1 启动容器
2.2 进入容器
2.3 导出/入容器 一. 架构
Docker 包括3个基本概念:镜像容器仓库。
1. 镜像
Docker 镜像Image就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
2. 容器
镜像Image和容器Container的关系就像是面向对象程序设计中的类和实例一样镜像是静态的定义容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
3. 仓库
仓库Repository可看成一个代码控制中心用来保存镜像。
二.使用
1. 镜像使用
1.1 查看镜像
•docker images来列出本地主机上的镜像。
rootlly:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 14.04 90d5884b1ee0 5 days ago 188 MB
php 5.6 f40e9e0f10c8 9 days ago 444.8 MB
nginx latest 6f8d099c3adc 12 days ago 182.7 MB
mysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MB
httpd latest 02ef73cf1bc0 3 weeks ago 194.4 MB
ubuntu 15.10 4e3b13c8a266 4 weeks ago 136.3 MB各个选项说明:
REPOSITORYREPOSITORY表示镜像的仓库源TAG镜像的标签IMAGE ID镜像IDCREATED镜像创建时间SIZE镜像大小
1.2 创建镜像
在本地主机上使用一个不存在的镜像时 Docker 就会自动下载这个镜像。如果想预先下载这个镜像可以使用 docker pull 命令来下载它。
rootlly:~$ docker pull ubuntu:13.10
13.10: Pulling from library/ubuntu
6599cadaf950: Pull complete
23eda618d451: Pull complete
f0be3084efe9: Pull complete
52de432f084b: Pull complete
a3ed95caeb02: Pull complete
Digest: sha256:15b79a6654811c8d992ebacdfbd5152fcf3d165e374e264076aa435214a947a3
Status: Downloaded newer image for ubuntu:13.101.3 查找镜像
#使用 docker search 命令来搜索指定镜像httpd
rootlly:~$ docker search httpd1.4 删除镜像
#使用 docker rmi 命令比如删除 hello-world 镜像
$ docker rmi hello-world1.5 创建镜像
当从 docker 镜像仓库中下载的镜像不能满足我们的需求时可以通过以下2种方式对镜像进行更改。
•从已经创建的容器中更新镜像并且提交这个镜像
#更新镜像之前需要使用镜像来创建1个容器
docker run -t -i ubuntu:15.10 /bin/bash
#进入容器后更新系统
apt-get update
apt-get upgrade -y
#在完成操作之后输入 exit 命令退出这个容器
exit
#此时 ID 为 e228edb10165 的容器是按需求更改的容器。可以通过命令 docker commit 来提交容器副本
docker commit -mhas update -ally e228edb1016 lly/ubuntu:v2
#可以使用 docker images 命令来查看我们的新镜像 lly/ubuntu:v2
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
lly/ubuntu v2 70bf1840fd7c 15 seconds ago 158.5 MB
ubuntu 14.04 90d5884b1ee0 5 days ago 188 MB
php 5.6 f40e9e0f10c8 9 days ago 444.8 MB
nginx latest 6f8d099c3adc 12 days ago 182.7 MB•使用 Dockerfile 指令来创建1个新的镜像
使用命令 docker build 从零开始来创建1个新的镜像。需要创建1个 Dockerfile 文件其中包含一组指令来告诉 Docker 如何构建我们的镜像。
rootlly:~$ cat Dockerfile
FROM centos:6.7
MAINTAINER Fisher fishersudops.comRUN /bin/echo root:123456 |chpasswd
RUN useradd runoob
RUN /bin/echo runoob:123456 |chpasswd
RUN /bin/echo -e LANG\en_US.UTF-8\ /etc/default/local
EXPOSE 22
EXPOSE 80
CMD /usr/sbin/sshd -Ddocker build -t runoob/centos:6.7 .参数说明
-t 指定要创建的目标镜像名. Dockerfile 文件所在目录可以指定Dockerfile 的绝对路径
1.6 设置镜像标签
docker tag 860c279d2fec lly/centos:dev镜像ID860c279d2fec
镜像源名lly/centos
标签名dev。
2. 容器使用
2.1 启动容器
docker run -it ubuntu /bin/bash
参数说明
-i 交互式操作-t终端ubuntuubuntu 镜像/bin/bash放在镜像名后的是命令这里希望有个交互式 Shell因此用的是 /bin/bash •后台运行
在大部分的场景下希望 docker 的服务是在后台运行的可以过 -d 指定容器的运行模式。
docker run -itd --name ubuntu-test ubuntu /bin/bash•启动已停止运行的容器
#查看所有的容器
$ docker ps -a#docker start 启动1个已停止的容器
$ docker start b750bbbcfd88
•停止容器
#停止容器
docker stop 容器 ID
#重启容器
docker restart 容器 ID
•删除容器
docker rm -f 1e560fca3906
2.2 进入容器
•exec
docker exec -it 243c32535da7 /bin/bash
从这个容器退出容器不会停止。
•attach
docker attach 1e560fca3906
如果从这个容器退出会导致容器的停止。
2.3 导出/入容器
1导出本地某个容器可以使用 docker export 命令。
#导出容器 1e560fca3906 快照到本地文件 ubuntu.tar
docker export 1e560fca3906 ubuntu.tar
2使用 docker import 从容器快照文件中再导入为镜像。
#将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1
cat docker/ubuntu.tar | docker import - test/ubuntu:v1
2.4 端口映射
通过 -p 参数设置端口。
#将容器内部的 80 端口映射到本地主机的 8888 端口上
docker run -d -p 8888:80 nginx:latest