干干净净的卸载docker
yum remove docker docker-common docker-selinux docker-engine -y
docker镜像的分层
镜像分层的好处:复用,节省磁盘空sff间,相同的内容只需加载一份到内存。 修改dockerfile之后,再次构建速度快dsfds
dockerfile 优化:
1:尽可能选择体积小linux发行版,alpine
2:尽可能合并RUN指令,清理无用的文件(yum缓存,源码包)
3:修改dockerfile,把变化的内容尽可能放在dockerfile结尾
4: 使用.dockerignore,减少不必要的文件ADD . /html
容器间的互联(--link是单方向的鸭)
例如:docker run -d -p 80:80 nginx docker run -it --link quirky_brown:web01 qstack/centos-ssh /bin/bash
--link quirky_brown:web01 等于这台主机自动做了quirky_brown:web01的hosts解析,可以不知道对方主机的IP,只是单向的解析。
docker registry 建立私有仓库(指定5000端口,开机启动)谁都可以上传,不好
docker run -d -p 5000:5000 --restart=always --name registry -v /opt/myregistry:/var/lib/registry registry
上传镜像到私有仓库:
a:给镜像打标签
docker tag centos:6.9 10.0.0.11:5000/centos:6.9
b:上传镜像
docker push 10.0.0.11:5000/centos:6.9
出现报错:Get https://10.0.0.11:5000/v2/: http: server gave HTTP response to HTTPS client
解决方法:
[root@docker02 docker]# cat /etc/docker/daemon.json
{
"insecure-registries": ["10.0.0.11:5000"],
"registry-mirrors": ["https://registry.docker-cn.com"]
}
systemctl restart docker
c:拉取镜像
docker pull 10.0.0.11:5000/centos:6.9
docker-compose(单机版的容器编排工具)
yum install -y docker-compose
创建文件夹,在里面搭建ansible剧本yml,yml名字必须为docker-compose.yml
搭建wordpress
cd my_wordpress
vi docker-compose.yml
version: '3'
services:
db:
image: mysql:5.7
volumes:
- /data/db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- /data/web_data:/var/www/html
ports:
- "80:80"
restart: always
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
后台启动
docker-compose up -d
设置开机自启
docker run --restart=always
上传镜像到官方仓库
需要docker login登录自己的账号
docker search alpine 查看alpine的镜像
docker tag alpine:3.9 账户名/要上传的镜像
docker push 账户名/要上传的镜像
docker企业级镜像仓库harbor(CHINA)
a:安装docker和docker-compose,安装docker要用老师给的那个rpm安装
b:下载harbor-offline-installer-v1.5.1.tgz
c:上传到/opt,并解压
d:修改harbor.cfg配置文件hostname = 10.0.0.11 harbor_admin_password = 123456
e:执行install.sh
harbor配置https证书
hostname = 设置为https的域名
将http的注释掉
ui_url_protocol=https
ssl_cert=证书
ssl_cert_key=密钥
将docker-registry迁移到harbo仓库
a:先创建一个test项目
b:系统管理->仓库管理,新建目标,提供者选择docker-registry,目标名test,目标URL为我们要同步的仓库地址:http://10.0.0.11:5000,没有账号密码证书,确定创建
c:系统管理->同步管理,新建规则,名称为test,同步模式我们选择拉去仓库,源Registry选择我们刚才创建的仓库管理的目标,目标Namespace选择我们a创建的test项目,选择项目同步,就会将项目同步过来
d:删除不想要的镜像,还需要任务里的垃圾清理
e:还可以看日志,看操作的过程