docker安裝教程 鏡像管理 私有倉庫
添加yum源
[root@ecs-proxy ~]# cp -a docker /var/ftp/localrepo/?
[root@ecs-proxy ~]# cd /var/ftp/localrepo/
[root@ecs-proxy localrepo]# createrepo --update .
[root@docker-0001 ~]# yum makecache
[root@docker-0001 ~]# yum list docker-ce*
[root@docker-0001 ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@docker-0001 ~]# sysctl -p
[root@docker-0001 ~]# yum install -y docker-ce
[root@docker-0001 ~]# systemctl enable --now docker
[root@docker-0001 ~]# ifconfig # 驗證,能看見 docker0
[root@docker-0001 ~]# docker version # 驗證,沒有報錯


docker run 啟動一個新的容器
? ? ? ? -i 交互式,-t 終端, -d 在后臺啟動
總結(jié):
? ?管理鏡像使用 ? 名稱:標(biāo)簽
? ?管理容器使用 ? 容器ID
commit 打包鏡像
docker ?commit ?容器id ?新鏡像名稱:標(biāo)簽

使用Dockerfile創(chuàng)建鏡像
docker ?build ?-t ?鏡像名稱:標(biāo)簽 ?Dockerfile所在目錄
制作apache鏡像
CMD ?指令可以查看 service 文件的啟動命令 ExecStart(/lib/systemd/system/httpd.service)
ENV ?環(huán)境變量查詢服務(wù)文件中的環(huán)境變量配置文件 EnvironmentFile 指定的文件內(nèi)容
[root@docker-0001 ~]# mkdir apache; cd apache
[root@docker-0001 apache]# vim Dockerfile
FROM myos:latest
RUN ?yum install -y httpd php && yum clean all
ENV
ADD ?webhome.tar.gz ?/var/www/html/
WORKDIR /var/www/html/
EXPOSE 80
CMD ["/usr/sbin/httpd", "-DFOREGROUND"]
# 拷貝 webhome.tar.gz 到當(dāng)前目錄中
[root@docker-0001 apache]# docker build -t myos:httpd .
制作php-fpm鏡像
[root@docker-0001 ~]# mkdir php; cd php
[root@docker-0001 php]# vim Dockerfile
FROM myos:latest
RUN? yum install -y php-fpm && yum clean all
EXPOSE 9000
CMD ["/usr/sbin/php-fpm", "--nodaemonize"]
[root@docker-0001 php]# docker build -t myos:php-fpm .
制作nginx鏡像
[root@docker-0001 ~]# yum install -y gcc make pcre-devel openssl-devel
[root@docker-0001 ~]# useradd nginx
[root@docker-0001 ~]# tar -zxvf nginx-1.12.2.tar.gz
[root@docker-0001 ~]# cd nginx-1.12.2
[root@docker-0001 nginx-1.12.2]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module
[root@docker-0001 nginx-1.12.2]# make && make install
[root@docker-0001 nginx-1.12.2]# # 拷貝 docker-images/info.html和info.php 到 nginx/html 目錄下
[root@docker-0001 nginx-1.12.2]# cd /usr/local/
[root@docker-0001 local]# tar czf nginx.tar.gz nginx
[root@docker-0001 local]# mkdir /root/nginx ;cd /root/nginx
[root@docker-0001 nginx]# cp /usr/local/nginx.tar.gz ./
[root@docker-0001 nginx]# vim Dockerfile?
FROM myos:latest
RUN? yum install -y pcre openssl && useradd nginx && yum clean all
ADD? nginx.tar.gz /usr/local/
EXPOSE 80
WORKDIR /usr/local/nginx/html
CMD? ["/usr/local/nginx/sbin/nginx", "-g", "daemon off;"]
[root@docker-0001 nginx]# docker build -t myos:nginx .
發(fā)布服務(wù)
docker ?run ?-itd ?-p 宿主機端口:容器端口 ?鏡像名稱:標(biāo)簽
容器共享卷
docker ?run ?-itd ?-v 宿主機對象:容器內(nèi)對象 ?鏡像名稱:標(biāo)簽
[root@registry ~]# yum install -y docker-distribution
[root@registry ~]# systemctl enable --now docker-distribution
[root@registry ~]# curl http://192.168.1.100:5000/v2/_catalog
{"repositories":[]}
docker客戶端配置
所有node節(jié)點都需要配置,這里 docker-0001,docker-0002都要配置
native.cgroupdriver ? cgroup驅(qū)動,docker默認(rèn) cgroupfs
registry-mirrors ? ? ? ? ?默認(rèn)下載倉庫,使用國內(nèi)源能快一點
insecure-registries ? ? 私有倉庫地址(重點)
[root@docker-0001 ~]# vim /etc/docker/daemon.json
{
? ? "exec-opts": ["native.cgroupdriver=systemd"],
? ? "registry-mirrors": ["https://hub-mirror.c.163.com"],
? ? "insecure-registries":["192.168.1.100:5000", "registry:5000"]
}
[root@docker-0001 ~]# docker rm -f $(docker ps -aq)
[root@docker-0001 ~]# systemctl restart docker
上傳鏡像
# 上傳 myos:latest, myos:httpd, myos:nginx, myos:php-fpm
[root@docker-0001 ~]# docker tag myos:latest 192.168.1.100:5000/myos:latest
[root@docker-0001 ~]# docker push 192.168.1.100:5000/myos:latest