Docker入门技巧
Docker入门技巧
历史版本
版本 | 修改人 | 修改时间 | 备注 |
V1.0 | 李明明 | 2018-1-3 | 初始版本 |
目录
1. Docker基础 5
1.1. 简介 5
1.2. Docker的组成部分 5
1.3. 优点以及解决的问题 5
1.4. 结构图 6
2. 安装步骤 6
2.1. 对操作系统的支持 6
2.2. Centos中docker的安装步骤 7
3. 常用命令 7
3.1. docker version 7
3.2. docker info 8
3.3. service docker status 9
3.4. docker images 10
3.5. docker ps -a 10
3.6. docker run 10
3.7. docker start、stop、restart 11
3.8. docker rm 11
3.9. docker export 11
3.10. docker import 12
3.11. docker rmi 12
3.12. docker commit 12
3.13. docker save 12
3.14. docker load 12
3.15. docker logs -f 13
3.16. docker exec 14
4. Docker 仓库 14
4.1. 默认仓库,官网仓库 14
4.2. 本地搭建仓库 15
4.3. 仓库命令 15
5. Dockerfile 15
5.1. Dockerfile编写命令 15
5.2. Dockerfile使用命令 16
6. docker-compose 16
6.1. 安装 16
6.2. 常用命令 16
6.3. 配置文件docker-compose.yml 17
7. 使用技巧 17
1. 有哪些好用的git管理工具? 17
2. 怎么部署? 17
3. 在哪里找镜像? 17
4. 例如现在用的gogs 17
为什么使用docker容器部署服务? 19
8. 其他 19
Docker基础
简介
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
Docker的组成部分
- dockerClient客户端
- Docker Daemon守护进程
- Docker Image镜像
- DockerContainer容器
优点以及解决的问题
- 一处打包,多处运行,解决部署麻烦的问题,方便快速部署
- 更轻量的虚拟化,节省了虚拟机的性能损耗
- 节约成本,以前一个虚拟机至少需要几个G的磁盘空间,docker容器可以减少到MB级
- 应用隔离
结构图
安装步骤
对操作系统的支持
https://www.docker.com/community-edition
Centos中docker的安装步骤
https://docs.docker.com/engine/installation/linux/docker-ce/centos
常用命令
docker version
查询系统安装的docker版本(server、client)
docker info
查询docker的信息
service docker status
查看docker服务状态:running,配置文件位置:/usr/lib/systemd/system/docker.service
docker images
查询本地镜像
docker ps -a
查看所有容器
docker run
运行镜像为容器,会新建一个容器;如果所使用的镜像在本地没有,会去docker hub下载。
docker run –name test_mysql -v /home/kee/mysql/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
–name:容器的名称【注意,以下关于容器的命令mysql都是这个容器名称;也可以使用容器id】
-v:挂载容器的文件夹到宿主主机的文件夹;前面是宿主主机,后面是容器
-e:设置容器的环境变量
-d:在后台运行
docker start、stop、restart
容器启动、停止、重启
docker rm
删除容器
docker export
导出容器为文件
docker import
导入容器为镜像
docker rmi
删除镜像
docker commit
commit容器为镜像,将容器保存为镜像
docker save
保存镜像为文件
docker load
加载文件为镜像(截图我先删除了容器和镜像,然后加载文件为镜像)
docker logs -f
查看容器日志,例如:docker logs -f mysql
docker exec
执行容器命令。例如截图执行容器的bash命令,由于bash命令是阻塞命令,所以相当于进入了容器;注意 加-it
退出:exit
执行一次性命令,执行完成即退出
Docker 仓库
默认仓库,官网仓库
hub.docker.com
本地搭建仓库
https://hub.docker.com/_/registry/
使用本地仓库需要配置docker的服务,需要重启docker;这里先不操作。
PS:一般不直接使用这个仓库,会使用第三方的registry管理工具,例如:portus,harbor
仓库命令
docker pull 127.0.0.1:5000/mysql:5.7
获取本地仓库镜像
例子中的REPOSITORY:127.0.0.1:5000/mysql
TAG:5.7
docker push 127.0.0.1:5000/mysql:5.7
推送镜像到仓库
Dockerfile
Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像。它们简化了从头到尾的流程并极大的简化了部署工作。Dockerfile从FROM命令开始,紧接着跟随者各种方法,命令和参数。其产出为一个新的可以用于创建容器的镜像。
Dockerfile demo: https://github.com/docker-library/mysql/blob/6c414e7f38c2079c7193beae5dc7c34ee46cd6e7/5.7/Dockerfile
Dockerfile编写命令
http://blog.csdn.net/wsscy2004/article/details/25878223
Dockerfile使用命令
使用dockerfile构建镜像
docker build -t test:v1 .
docker-compose
Docker Compose是一个用来定义和运行复杂应用的Docker工具。使用Compose,你可以在一个文件中定义一个多容器应用,然后使用一条命令来启动你的应用,完成一切准备工作。
安装
https://docs.docker.com/compose/install/
curl -L https://github.com/docker/compose/releases/download/1.4.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod x /usr/local/bin/docker-compose
常用命令
build 构建或重建服务
help 命令帮助
kill 杀掉容器
logs 显示容器的输出内容
port 打印绑定的开放端口
ps 显示容器
pull 拉取服务镜像
restart 重启服务
rm 删除停止的容器
run 运行一个一次性命令
scale 设置服务的容器数目
start 开启服务
stop 停止服务
up 创建并启动容器
配置文件docker-compose.yml
编写docker-compose.yml文件命令:http://blog.csdn.net/kevin_201353/article/details/51547742
Yaml语法规则:https://www.cnblogs.com/moonandstar08/p/6435640.html
demo如下:
version: ‘2’
services:
web:
build: .
depends_on:
– db
– redis
redis:
image: redis
db:
image: postgres
使用技巧
例如:我想部署一套git仓库管理工具
例如:gitlab、gogs、gitbucket、bitbucket等等
当然是用容器部署了
Docker官方的镜像库:hub.docker.com
搜索可以看到:
点击详情进去:
一般这里会有使用镜像的说明,但gogs界面并没有;
继续往下看,发现这里有一个链接:
进去之后是github的源码和说明,按照这里的使用说明操作就OK了:
容器起来后,发现可以正常访问。
到这里理论上就应该完成了,but,有什么忘记了吗?容器应该是无状态的!!!
继续查看说明,发现容器的数据都放在了宿主主机的这里:/var/gogs,Very Good,完成!
PS:并不是所有的镜像运行的基础命令都带上了数据盘的挂载,需要注意!!!
评论已关闭。