Docker安装、管理
     分类:虚拟化     有: 0 条评论

Docker安装、管理

     分类:虚拟化     有: 0 条评论

Docker官网下载:https://www.docker.com/products/overview

官方文档:https://docs.docker.com/

官方安装文档:https://docs.docker.com/engine/installation/


Centos 7

Centos 6的内核版本太低,需要升级内核及整个系统的依赖库,比较复杂,不建议使用。

root用户登录,uname -r确保内核版本大于等于3.10
yum update更新系统

加入Docker源

tee /etc/yum.repos.d/docker.repo <<-'EOF'
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF

安装

如果用了阿里源、163源等等,可以直接用:yum install -y docker安装。

yum install docker-engine -y
systemctl enable docker.service
systemctl start docker

Windows

下载最新exe安装包进行安装。安装后看能否正常运行Docker,出现闪退,报错等等,先打开virtual虚拟机看虚拟机是否正常,虚拟机报错很可能是3个Windows字体的.dll文件被破解了,下载原版替换,C:Program FilesOracleVirtualBoxdriversvboxdrvVBoxDrv.inf文件右键安装,然后重启。

Windows 10以下

Boot2docker:
https://github.com/boot2docker/windows-installer/releases

Toolbox:https://github.com/docker/toolbox/releases

Windows 10以上

官网下载:https://docs.docker.com/docker-for-windows/


Ubuntu 14 && Ubuntu 16

root用户登录,uname -r确保内核版本大于等于3.10

法一apt-get install docker docker.io -y

法二:安装最新版
1.增加GPG密钥

apt-get update
apt-get install apt-transport-https ca-certificates
apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

2.新增或编辑source列表里的docker.list文件
vim /etc/apt/sources.list.d/docker.list 如果不存在就新增,填入下面一个地址。保存退出
Trusty 14.04 (LTS) deb https://apt.dockerproject.org/repo ubuntu-trusty main
Xenial 16.04 (LTS) deb https://apt.dockerproject.org/repo ubuntu-xenial main

apt-get purge lxc-docker  #清理以前安装过的docker源,没有安装的话,跳过
apt-cache policy docker-engine #查看是否有正确的可用版本

3.安装Docker

apt-get update
apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual
#从14.04版本以上开始docker推荐安装linux-image-extra
apt-get install docker-engine
service docker start
docker run hello-world

Deepin

Deepin这里比较特殊,不能按照Debian的方法来安装。

apt-get remove docker docker-engine docker.io
apt-get install -y apt-transport-https ca-certificates curl python-software-properties software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

# 查看密钥是否安装成功
apt-key fingerprint 0EBFCD88

add-apt-repository   "deb [arch=amd64] https://download.docker.com/linux/debian   wheezy   stable"
apt-get update
apt-get install -y docker-ce

Mac

安装包安装

下载最新pkg格式安装包:Boot2Docker-1.3.2.pkg进行安装。
https://github.com/boot2docker/osx-installer/releases/latest

或者手动初始化Boot2Docker,打开终端并运行:

boot2docker init
boot2docker start
export DOCKER_HOST=tcp://$(boot2docker ip 2>/dev/null):2375

一旦你初始化化好了一个虚拟机,你就能用boot2docker stop和boot2docker start来进行控制。
安装好后带有virtualBox虚拟机。

更新

boot2docker stop
boot2docker download
boot2docker start

Brew方式安装

brew update
brew install docker
brew link docker
brew link boot2docker

当用brew安装某个应用后,但没有成功创建brew link(比如,link的目录已经存在相同的老版本文件导致link创建失败),此时可以将老版本删除,然后再次执行brew link xxx就可以创建link了,之后就可以使用brew安装的新版本了。

注:ls -lh /usr/local/bin/*docker*  就可以看到Docker安装的位置。

Boot2Docker的缺省用户名为docker,密码为tcuser。

运行Docker

在终端上跑一个“hello world” 的示例来测试Docker。启动虚拟机然后运行:
docker run ubuntu echo hello world
这样应该会下载ubuntu镜像并打印hello world。

容器端口跳转

最新版的boot2docker建立了一个仅有网络适配器的主机提供可以接入容器的端口。
如果你运行一个有公开端口的容器,

docker run --rm -i -t -p 80:80 nginx
然后你应该能用IP地址接入Nginx服务器:

boot2docker ip 显示当前IP
这个IP地址可能被VirtualBox启用的DHCP修改。

Boot2Docker管理工具提供了很多命令:

./boot2docker [<options>] [<args>]

参数:{help|init|up|ssh|save|down|poweroff|reset|restart|config|status|info|ip|delete
|download|version}


docker容器磁盘扩容

默认情况下,docker容器是创建10G的磁盘,但是某些情况下10G是不够的,扩容有两种方式。

法1:在启动容器时指定指定大小

可以修改配置文件让每个启动的容器都是你指定的大小:

vim /etc/sysconfig/docker-storage
在参数中加入:--storage-opt dm.basesize=20G

或者启动容器时设置,如:docker -d --storage-opt dm.basesize=20G

法2:扩容mapper设备(不停机对已有的容器扩容)

类似lvm的原理,在容器里df -Th查看文件系统,可以看到mapper设备的编号,在真机中/dev/mapper/docker..开头的设备中就有对应的文件。

# 查看卷大小,第二位数就是卷大小,表示有多少个512bytes的扇区。
dmsetup table [docker-8:2...卷编号]
0 20971520 thin 253:0 35

# 计算新容量字节数
echo $((20*1024*1024*1024/512))
41943040

# 修改大小,这里的是上面dmsetup table时输出的内容,只是改一下容量大小。
echo 0 [新容量41943040] thin 253:0 35 |dmsetup load [docker-8:2...卷编号]

# 激活
dmsetup resume [docker-8:2...卷编号]

# 查看、验证卷大小,第二位数就是卷大小,表示有多少个512bytes的扇区。
dmsetup table [docker-8:2...卷编号]

# 修改文件系统大小
resize2fs /dev/mapper/[docker-8:2...卷编号]

# 验证大小
进入容器里面,df -Th查看是否成功扩容

Docker容器技术入门

https://mp.weixin.qq.com/s/wIRXLf-akMxXAPjSFQ0DLw
https://mp.weixin.qq.com/s/zPVY4Yx4g_bIX5wz9iFrSg

(●゚ω゚●)