1.安装dockers,配置docker软件仓库
安装,可能需要开代理,这里我提前使用了下好的包安装
启动docker
systemctl enable --now docker
查看是否安装成功
2.简单命令
拉取镜像,也可以提前下载使用以下命令上传
docker load -i images-name(镜像包)
查看镜像
docker images
查看镜像信息
保存镜像
#保存镜像
docker image save nginx:latest -o nginx-latest.tar.gz
docker image save nginx:latest nginx:1.26-alpine -o nginx.tag.gz
#保存所有镜像
docker save `docker images | awk 'NR>1{print $1":"$2}'` -o images.tar.gz
删除镜像
运行docker容器
查看运行的docker容器
停止和启动容器
杀死容器,删除容器
docker kill test
docker rm nginx #删除停止的容器
docker rm -f busybox #删除运行的容器
docker container prune -f #删除所有停止的容器
3.构建镜像
docker build -t example:v1 . #构建镜像
镜像优化方案
减少镜像层,使用一条run命令
多阶段构建,先编译构建,在直接编译
vim Dockerfile(命名自定,默认是这个,使用自定义名字需要指定)
FROM nginx:v1 as build
ADD nginx-1.24.0.tar.gz /mnt
WORKDIR /mnt/nginx-1.23.3
RUN yum install -y gcc make pcre-devel openssl-devel && sed -i 's/CFLAGS="$CFLAGS
-g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc && ./configure --with-http_ssl_module --
with-http_stub_status_module && make && make install && cd .. && rm -fr nginx1.23.3
&& yum clean all
FROM nginx:v1
COPY --from=build /usr/local/nginx /usr/local/nginx
EXPOSE 80
VOLUME ["/usr/local/nginx/html"]
CMD ["/usr/local/nginx/sbin/nginx", "-g", "daemon off;"]
使用最精简构建,下载官方最小的镜像,然后使用多阶段镜像构建
4.搭建仓库,registry仓库
下载registry镜像,开启registry
docker pull registry
docker run -d -p 5000:5000 --restart=always --name test registry
docker ps 查看运行情况,上传镜像,给镜像打标签
docker tag busybox:latest 172.25.254.100:5000/busybox:latest
提供加密服务,生成证书,这里我建立了当前路径下的certs,将证书和密钥建立到了certs下面,这里路径可按自我需求写
openssl req -newkey rsa:4096 \
-nodes -sha256 -keyout certs/timinglee.org.key \
-addext "subjectAltName = DNS:reg.timinglee.org" \
-x509 -days 365 -out certs/timinglee.org.crt
编译启动registry,路径和上面放证书的路径一致
docker run -d -p 443:443 --restart=always --name registry \
> --name registry -v /opt/registry:/var/lib/registry \
> -v /root/certs:/certs \
> -e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
> -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/timinglee.org.crt \
> -e REGISTRY_HTTP_TLS_KEY=/certs/timinglee.org.key registry
给客户端生成证书
mkdir /etc/docker/certs.d/reg.timinglee.org/ -p #建立客户端的证书目录
cp /root/certs/timinglee.org.crt /etc/docker/certs.d/reg.timinglee.org/ca.crt #将生成的证书写进去
systemctl restart docker #启动docker
docker push reg.timinglee.org/busybox:latest #拉取镜像
#访问测试
curl -k https://reg.timinglee.org/v2/_catalog
测试成功效果
配置harbor仓库
下载harbor压缩包并解压,切换到harbor目录,复制一份配置文件,编辑配置文件,将证书信息和主机信息以及密码改为自己的信息上去然后安装
tar zxf harbor-offline-installer-v2.5.4.tgz
cd harbor/
cp harbor.yml.tmpl harbor.yml
vim harbor.yml
hostname: reg.timinglee.org
certificate: /data/certs/timinglee.org.crt
private_key: /data/certs/timinglee.org.key
harbor_admin_password: lee
# ./install.sh --with-chartmuseum
访问地址或者域名,需要解析,测试效果如下
5.dockers的安全加固
dockers的默认隔离性,和操作系统共用,不安全
使用lxcfs增加隔离性
安装lxcfs
运行lxcfs
容器特权的限制
默认都允许
使用参数限制
6.dockers compose,查看配置和配置文件
docker compose管理命令
启动,删除,重启,开始,停止等
查看compose日志