安装
Deepin 15.11
Install Docker Engine on Ubuntu
1 | |
控制docker状态
1 | |
命令
1 | |
镜像
镜像好比模板,静态形式,类比虚拟机的镜像,便于维护、扩展和交流,一般用来创建容器。
列举镜像
1 | |
拉取镜像
1 | |
查找镜像
在Docker Hub上检索镜像
1 | |
删除镜像
1 | |
保存加载
1 | |
1 | |
构建镜像
commit
build和Dockerfile
编写Dockerfile文件
1 | |
构建
1 | |
推送到Docker Hub
1 | |
容器
容器,基于镜像创建,动态形式
创建容器
运行(启动)并创建容器且执行命令(前台)
1 | |
定制容器名称(默认docker随机生成名称),相比于容器ID,更容易识别,便于人工操作。
1 | |
shell中exit退出,容器也即停止
1 | |
运行并创建容器且执行命令(后台)
1 | |
停止容器
1 | |
列举容器
1 | |
启动容器
启动已经停止的容器(沿用run命令的参数)
1 | |
附着到运行中的容器(沿用run命令的参数)【可能需要按下回车键才能进入该会话】
1 | |
在容器内部运行命令(前台)
1 | |
在容器内部运行命令(后台)
1 | |
删除容器
1 | |
导出导入
1 | |
1 | |
端口映射
宿主机4999端口映射到容器80端口上
1 | |
宿主机端口随机映射到容器80端口上
1 | |
查看宿主机与容器的端口映射
1 | |
对外开放Dockerfile中EXPOSE的端口,宿主机端口随机
1 | |
数据管理
1 | |
权限
两目录的userId、groupId和权限等一模一样,但是由于宿主机和容器两系统中user和group的ID分配是不一样的,相同ID代表的内容不一样,因而可能会出现权限问题。例如:
容器
1 | |
宿主机
1 | |
容器中Apache进程用户为www-data,ID为33,对/var/www/html目录没有写权限,导致无法showdoc无法安装成功。
在宿主机将属主变更为33即可,例如:
1 | |
但是这样可能导致宿主机的权限问题,可以通过group增加权限。
1 | |
仓库
1 | |
Compose
Compose一种编配工具,原本需要一个容器一个容器的启动/停止等操作,借助compose通过编排(docker-compose.yml)可以同时操作多个容器。
安装
通过package管理器安装
1 | |
或者人工安装
1 | |
命令
1 | |
docker-compose.xml
docker-compose.yml sample:
1 | |
指令:
image
command
build
ports
volumes
links
Machine
Swarm
Swarm一种集群管理工具,可以构建CaaS
Swarm Mode
Dockerfile指令
.dockerignore定义忽略处理的文件