干干凈凈的卸載docker
?yum?remove?docker?docker-common?docker-selinux?docker-engine?-y
docker鏡像的分層
鏡像分層的好處:復(fù)用,節(jié)省磁盤空sff間,相同的內(nèi)容只需加載一份到內(nèi)存。 修改dockerfile之后,再次構(gòu)建速度快dsfds
dockerfile 優(yōu)化:
1:盡可能選擇體積小linux發(fā)行版,alpine
2:盡可能合并RUN指令,清理無用的文件(yum緩存,源碼包)
3:修改dockerfile,把變化的內(nèi)容盡可能放在dockerfile結(jié)尾
4: 使用.dockerignore,減少不必要的文件ADD . /html
容器間的互聯(lián)(--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:給鏡像打標(biāo)簽?
docker tag centos:6.9 10.0.0.11:5000/centos:6.9
b:上傳鏡像
docker push 10.0.0.11:5000/centos:6.9
出現(xiàn)報錯: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
創(chuàng)建文件夾,在里面搭建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
設(shè)置開機自啟
docker run --restart=always
上傳鏡像到官方倉庫
需要docker login登錄自己的賬號
docker search alpine 查看alpine的鏡像
docker tag alpine:3.9 賬戶名/要上傳的鏡像
docker push 賬戶名/要上傳的鏡像
docker企業(yè)級鏡像倉庫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:執(zhí)行install.sh
harbor配置https證書
hostname = 設(shè)置為https的域名
將http的注釋掉
ui_url_protocol=https
ssl_cert=證書
ssl_cert_key=密鑰
將docker-registry遷移到harbo倉庫
a:先創(chuàng)建一個test項目
b:系統(tǒng)管理->倉庫管理,新建目標(biāo),提供者選擇docker-registry,目標(biāo)名test,目標(biāo)URL為我們要同步的倉庫地址:http://10.0.0.11:5000,沒有賬號密碼證書,確定創(chuàng)建
c:系統(tǒng)管理->同步管理,新建規(guī)則,名稱為test,同步模式我們選擇拉去倉庫,源Registry選擇我們剛才創(chuàng)建的倉庫管理的目標(biāo),目標(biāo)Namespace選擇我們a創(chuàng)建的test項目,選擇項目同步,就會將項目同步過來
d:刪除不想要的鏡像,還需要任務(wù)里的垃圾清理
e:還可以看日志,看操作的過程