文章目录
docker
1、docker简介
docker官网:https://hub.docker.com/
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
+---------+ +---------+ +---------+ +-----+ +-----+ +-----+
| abc.com | | def.com | | xyz.com | | DB1 | | DB2 | | DB3 |
+----+----+ +----+----+ +----+----+ +--+--+ +--+--+ +--+--+
| | | | | |
+----+----+ +----+----+ +----+----+ +--+--+ +--+--+ +--+--+
| abc | | def.com | | xyz.com | | DB1 | | DB2 | | DB3 |
| config | | config | | config | | conf| | conf| | conf|
| data | | data | | data | | data| | data| | data|
+----+----+ +----+----+ +----+----+ +--+--+ +--+--+ +--+--+
| | | | | |
+------------+------------+ +-------+-------+
| |
+------+------+ +------+------+
| Nginx Image | | MySQL Image |
+------+------+ +------+------+
| |
+----------------+----------------+
|
+------+-------+
| Alpine Image |
+------+-------+
作者:木头龙
链接:https://www.zhihu.com/question/28300645/answer/585166942
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
上图是基于一个Alpine Linux的镜像,分别建立了Nginx和MySQL的镜像,并且挂载不同的配置/数据同时运行3个网站应用3个数据库应用的示意图。
2、docker注册
注册地址:官网
3、docker安装
安装请参照官网的win或linux、ubuntu等系统安装教程即可,此处略。
win安装
- 步骤1:安装win10子系统ubuntu
- 步骤2:报错处理:报错①,报错②,报错③
- 步骤3:安装docker
Linux CentOS安装
- 步骤1:yum install -y -q yum-utils
- 步骤2:curl -fsSL https://get.docker.com | bash -s docker --mirror aliyun
Linux Ubuntu安装
- 步骤1
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
安装成功后执行命令检查是否成功
- 步骤1:启动docker》service docker start
- 步骤2:执行命令》docker run hello-world
4、docker使用
4.1、容器
镜像获取
# 获取ubuntu镜像
docker pull ubuntu
容器列表
# 容器列表
docker ps -a
容器启动
# 容器启动
# 0887af42127d 容器编号
docker start 0887af42127d
# 使用 ubuntu 镜像启动一个容器,参数为以命令行模式进入该容器
docker run -it ubuntu /bin/bash
# 退出终端
exit
容器停止
# 容器停止
# 0887af42127d 容器编号
docker stop 0887af42127d
容器后台运行
# -d指令
docker run -itd --name ubuntu-test ubuntu /bin/bash
容器进入
- docker attach
# 容器进入
docker attach 0887af42127d
注意: 如果从这个容器退出,会导致容器的停止。
- docker exec:推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。
# 容器进入
docker exec -it 0887af42127d /bin/bash
注意: 如果从这个容器退出,容器不会停止,这就是为什么推荐大家使用 docker exec 的原因。
容器导出
# 容器导出
docker export 0887af42127d > ubuntu.tar
容器导入
# 容器导入(LINUX推荐)
cat docker/ubuntu.tar | docker import - test/ubuntu:v1
# 容器导入,指定URL
docker import http://example.com/exampleimage.tgz example/imagerepo
# 容器导出,指定目录(WIN推荐)
docker import ubuntu.tar ubuntu-test:v2
容器删除
# 容器删除
docker rm -f 1e560fca3906