我们的项目里面经常需要使用jenkins来编译docker,然后jenkins本身就是docker运行起来的,因此编译docker镜像就无法进行。通过调查发现:可以通过映射宿主机器的docker来达到运行的目的。
命令如下:
bash
docker run -it --rm \
--privileged=true \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/run/docker:/var/run/docker \
-v /usr/bin/docker:/usr/bin/docker \
--group-add=$(stat
继续阅读 »
预操作
加速器
修改/etc/docker/daemon.json 文件并添加上 registry-mirrors键值,将镜像源切换为国内。
shell
$ vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
设置权限
docker守护进程启动的时候,会默认赋予名字为docker的用户组读写Unix socket的权限,创建docker用户组,并将当前用户加入到docker用户组中,当前用户就有权限访问Unix socket了,就可以执行docker相关命令
继续阅读 »
docker
docker 使用go语言开发,对进程进行封装隔离。
more
docker的三个基本概念
一、镜像(Image)
Docker中的文件系统(操作系统的完整root文件系统),提供容器运行时所需的程序,文件,资源,配置及配置参数(匿名卷,环境变量,用户),镜像不会包含任何动态数据,其中的内容在构建后不会发生任何的变化,Docker的镜像设计基于Union FS设计为分层存储的架构。镜像的构建一层一层前者是后者的基础,构建完成后不再发生变化。
二、容器(container)
容器是镜像的运行实体(实质为进程),容器运行时以镜像为基础层创建当前的容器存储层,容器存储层的生命周期与容器相同,保存于容器存储层
继续阅读 »
本文介绍如何使用 Docker 构建一个高效的 Web 开发环境(Linux+Docker+Python+JavaScript),这也是我的日常开发环境。
准备Docker
安装Docker
https://docker.github.io/engine/installation/linux/
不要漏了阅读 Create a Docker group 部分。
安装Docker Compose
继续阅读 »
Native Docker Networking Status
Docker now supports both single-host and multi-host networking this means that both containers on the same Docker host and containers on different Docker hosts can connect with each other with native docker network support.
For multi-host networking support, docker is using overlay net
继续阅读 »
Docker是一种新兴的虚拟化技术,与传统的虚拟机不同,Docker能最大化利用物理机资源,并且快速、方便,除了这个,Docker还为团队运维自动化、组件化提供了很好的解决方案,可以想象下,以前我们在部署新服务器的环境时,需要每个服务都重新装一遍,而现在部署新服务器时只需要把对应的Docker镜像Down下来就可用,这无疑大大减少了运维成本。
继续阅读 »
常用命令
列出本地的docker镜像列表
docker images
从远程拉取指定的镜像列表
docker pull ubuntu:16.04
删除本地镜像
docker rmi 【image id】
继续阅读 »
什么是 vagrant ? Vagrant 是一个跨平台的虚拟机构建工具,能够通过 vagrantfile 描述虚拟机并将其部署到 hypervisor 上(VirtualBox, VMWare, AWS, etc)。
什么是 docker ? Docker 是一个 linux 上的 linux container 构建工具,能够通过 dockerfile 来定义一个 container ,并将其部署到任何运行 docker 的主机上。
Vagrant 和 docker 都能够通过一个配置描述文件来构造一个运行环境。
再来看 vagrant 和 docker 的一些差异:
docker其他的优势:
轻量级的隔离环境比
继续阅读 »
在docker中安装jenkins
拉取jenkins image
shell
docker pull jenkins
Jenkins没有数据库,所有数据都是存放在文件中的,首先在本地创建Jenkins数据目录,用于保存Jenkins的数据 这个目录需要定期的备份,用于容灾(当前Jenkins容器所在节点由于不可抗因素无法使用时,可以在新机器上使用备份的数据启动新的jenkins master节点)。
shell
sudo mkdir /var/jenkins
sudo chown 1000:1000 /var/jenkins
sudo docker run -p 8080:8080 -p 50000:50000 -v /var
继续阅读 »
学习任何东西的过程中,难免会遇到会遇到很棘手的问题,这些问题短则耗费个把小时,长则耗费好几天,折磨到你是里外不是人,当然这些很棘手的问题最后都被消灭得无影无踪,在学习Docker时也遇到了几个,记录如下:
1、早期Docker用的boot2docker来做承载的环境,后来官方出了docker-machine来做载体,也就渐渐抛弃了boot2docker,也不能算是抛弃,而是整合进docker-machine里面了,而我在网上找的安装文章又是很久之前的,导致一堆问题,后来看了官方文档解决了。教训就是网上的教程请谨慎对待,最好看官方文档。
继续阅读 »