Docker
kvm vs docker
kvm模式 隔离化更好 但必须虚拟整个OS系统,对资源占用量太多。
Docker容器 不需要独立的系统 只需要一个服务Docker引擎 共享函数库。
安全角度上来讲,kvm安全性更高。
容器调度:
k8s统一调度市场(落地主流选择)
一、安装docker
我安装时用到的rpm包和依赖性(仅供参考):
ner-selinux-2.21-1.el7.noarch.rpm
docker-ce-18.03.1.ce-1.el7.centos.x86_64.rpm
libsemanage-2.5-8.el7.x86_64.rpm
libsemanage-python-2.5-8.el7.x86_64.rpm
pigz-2.3.4-1.el7.x86_64.rpm
policycoreutils-2.5-17.1.el7.x86_64.rpm
policycoreutils-python-2.5-17.1.el7.x86_64.rpm
[root@foundation1 docker]# yum install * -y
[root@foundation1 docker]# systemctl start docker.service
[root@foundation1 docker]# docker version ##查看当前版本
[root@foundation1 docker]# docker load -i game2048.tar ##载入镜像
011b303988d2: Loading layer 5.05MB/5.05MB
36e9226e74f8: Loading layer 51.46MB/51.46MB
192e9fad2abc: Loading layer 3.584kB/3.584kB
6d7504772167: Loading layer 4.608kB/4.608kB
88fca8ae768a: Loading layer 629.8kB/629.8kB
Loaded image: game2048:latest
[root@foundation1 docker]# docker images ##查看现在所有的images
REPOSITORY TAG IMAGE ID CREATED SIZE
game2048 latest 19299002fdbe 2 years ago 55.5MB
[root@foundation1 docker]# docker run -d --name vm1 game2048 ##run创建运行 -d打入后台
7247a94ae2c049ad7fa1090f12bac09491cc005399fbc54fbdb57f669e8f3188
[root@foundation1 docker]# docker inspect vm1 ##查看容器信息
测试:
docker分层:
容器是共享内核的
容器镜像:base、应用、应用环境。
docker操作:
对于容器操作:
ctrl+p+q ##退出且保存
封装镜像:
[root@foundation1 docker]# docker load -i rhel7.tar ##载入rhel7简化镜像
e1f5733f050b: Loading layer 147.1MB/147.1MB
[root@foundation1 docker]# mkdir /tmp/docker
[root@foundation1 docker]# cd /tmp/docker/
[root@foundation1 docker]# vim dockerfile
[root@foundation1 docker]# docker build -t rhel7:v1 .
Sending build context to Docker daemon 2.048kB
Step 1/2 : FROM rhel7
—> 0a3eb3fde7fd
Step 2/2 : CMD echo hello world
—> Running in 32c49a24483d
Removing intermediate container 32c49a24483d
—> 84c0096c4530
Successfully built 84c0096c4530
Successfully tagged rhel7:v1
[root@foundation1 docker]# docker run --rm rhel7:v1
hello world
封装http镜像:
[root@foundation1 docker]# vim dvd.repo
[dvd]
name=rhel7.3
baseurl=http://172.25.254.250/rhel7.3/x86_64/dvd
gpgcheck=0
[root@foundation1 docker]# vim dockerfile
FROM rhel7
COPY dvd.repo /etc/yum.repos.d/
RUN rpm --rebuilddb && yum install -y httpd
CMD ["/usr/sbin/httpd", “-D”, “FOREGROUND”]
[root@foundation1 docker]# docker build -t rhel7:v1 .
[root@foundation1 docker]# docker run -d --name vm2 rhel7:v1
[root@foundation1 docker]# vim index.html
[root@foundation1 docker]# docker cp index.html vm2:/var/www/html
[root@foundation1 docker]# docker inspect vm2
[root@foundation1 docker]# curl 172.17.0.3
docker_apache’s page
源码安装:
[root@foundation1 docker]# ls
dockerfile dvd.repo index.html nginx-1.14.2.tar.gz
[root@foundation1 docker]# vim dockerfile
[root@foundation1 docker]# docker build -t rhel7:v2 .
[root@foundation1 docker]# docker run -d --name vm3 rhel7:v2
减少分层:
多阶段构建
精简base
####################################
搭建docker私有镜像库
#############
镜像加速
镜像管理:
镜像用来创建容器,是容器的只读模板,默认可以从 docker hub 上下载。docker 的镜像是
增量修改,每次创建新的镜像都会在父镜像上构建一个增量的层,基于 AUFS 技术。
docker search 查询镜像
docker pull 拉取镜像
docker push 推送镜像
镜像默认可以从 docker hub 上下载,这是 docker 官方的公共仓库,为我们免费提供了大量
已经容器化的应用镜像,避免我们重复的去造轮子。但是官方并没有在国内部署服务器,
如果你不走 vpn 的话真的是太慢了,报错和超时让人非常的郁闷。
我们可以使用阿里云进行镜像加速直接下载镜像。
[root@foundation1 docker]# cd /etc/docker/
[root@foundation1 docker]# ls
key.json
[root@foundation1 docker]# vim daemon.json
[root@foundation1 docker]# vim daemon.json
[root@foundation1 docker]# cat daemon.json
{
“registry-mirrors”: [“https://3hdnknzb.mirror.aliyuncs.com”]
}
[root@foundation1 docker]# systemctl daemon-reload
[root@foundation1 docker]# systemctl restart docker
下载
添加密钥