docker 容器部署与私有镜像库
一、 Docker 服务安装与启动
1.1 docker下载安装
docker 一般部署在Linux操作系统的服务器上进行使用,安装可使用如下操作行进行安装:
1). centos/redhat 环境
# 更换国内阿里的源 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum makecache # 下载yum包管理器的扩展 yum install -y yum-utils device-mapper-persistent-data lvm2 # 更换国内阿里的docker源 yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 安装docker服务 yum install -y docker-ce
2). ubuntu/debian 环境
# 修改 /etc/apt/sources.list 更换为国内源 deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse # 将上述的focal替换为你自己的Ubuntu版本的Codename,codename获取命令如下 lsb_release -a | grep Codename | awk '{print $2}'
1.2 docker 服务启动与自启动
# 服务启动 systemctl start docker # 查看docker服务状态 systemctl status docker # 将docker服务加入开机自启 systemctl enable docker
二、 Docker 镜像拉取与启动
2.1 docker push 与docker pull
# 拉取镜像, docker_name若不带仓库地址默认从docker hub 下载,若不带tag_name,默认tag_name为latest git pull docker_name:tag_name # 推送镜像, docker_name若不带仓库地址默认推送到docker hub,若不带tag_name,默认tag_name为latest git push docker_name:tag_name
2.2 docker run
# 以 ubuntu docker为例进行启动 docker run -d --name my_ubuntu -p 10022:22 -v /home/username/my_ubuntu_data:/data ubuntu # 此示例在启动 ubuntu docker 做了端口映射,即访问宿主机的10022端口就是访问ubuntu的22端口; # 存储(卷)映射,访问宿主机的/home/username/my_ubuntu_data文件夹就是访问ubuntu的/data 文件夹; # 端口映射与存储卷映射可设置多组
2.3 docker run 附带启动参数
2.3.1 端口映射
docker run -itd -p 10022:22 --name my_ubuntu ubuntu # 启动一个ubuntu docker实例,并将宿主机10022映射到ubuntu的22端口,启动后便可以通过ssh 通过端口号与宿主机ip对ubuntu直接进行连接访问: ssh -p 10022 username@{宿主机ip} # -i 表示允许标准输入 # -t 表示分配一个伪终端 # -d 表示容器在后台运行
2.3.2 存储卷与存储映射
docker run -itd -v /data:/data --name my_ubuntu ubuntu # 启动一个ubuntu docker实例,并将宿主机的/data文件夹映射到ubuntu的/data文件夹,类似共享文件夹,宿主机对其/data文件夹中文件的修改,容器可以实时同步的观察到对应/data文件夹下对应文件的修改
2.3.3 自启动方式
docker run -itd --restart always --name my_ubuntu ubuntu # --restart 参数是指在docker服务重启后,容器是否自动重启的参数,always表示docker服务重启此容器会自行启动
2.4 容器启动附带执行脚本与进入容器内部
# ubuntu镜像的/root下有一个start.sh shell脚本,在启动容器时执行此脚本 docker run -d --name my_ubuntu ubuntu /root/start.sh # 从宿主机进入容器内部 docker exec -it my_ubuntu(或者容器的commit id ,commit id通过 docker ps -a获取) # 在宿主机执行容器内部命令或脚本 docker exec -itd my_ubuntu(或容器的commit id) 内部命令或脚本
三、 Docker 本地镜像库搭建
3.1 部署 harbor 与制作/添加镜像
3.1.1 安装部署harbor
# 1. 安装Docker sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io # 2. 下载Harbor OFFLINE安装包 wget https://github.com/goharbor/harbor/releases/download/v2.0.0/harbor-offline-installer-v2.0.0.tgz # 3. 解压安装包 tar xvf harbor-offline-installer-v2.0.0.tgz cd harbor # 4. 编辑配置文件(例如使用nano或vim编辑器) nano harbor.yml # 5. 运行安装脚本 ./install.sh # 6. 验证安装 docker-compose ps
3.1.2 制作/添加镜像
- 从外部打包镜像拿到其他环境中使用的镜像
# 在外网环境下通过docker save命令将需要的容器打包成tar压缩文件,以ubuntu为例: docker save ubuntu:latest -o ubuntu.tar # 传到特定的网络环境的机器设备上后通过docker load命令将其加载到本地的镜像 docker load -i ubuntu.tar
- 基于某容器现状态制作的容器
1)命令行操作
# 首先通过容器名称或者容器的commit id停止运行要被制作镜像的容器,此处以上述创建的my_ubuntu为例 docker stop my_ubuntu # 通过docker commit命令产生新镜像 # -a 是作者名 # -m 是镜像信息 # 仓库地址是配置的私有镜像仓库harbor的访问地址,已配置的为:9081/library docker commit -a "usename" -m "Create a new Docker image." my_ubuntu的commit id 仓库地址/my_ubuntu:v1.0
2) portainer 可视化docker管理工具操作
3.2 harbor使用与镜像管理
3.2.1 harbor访问地址与账号密码
1. 访问地址:xx.xx.xx.xx:xxxx 2. 默认账号:admin 3. 默认密码:Harbor12345
3.2.2 推送到镜像库
# 以上述创建的my_ubuntu:v1.0为例推送到私有镜像仓库harbor docker push xx.xx.xx.xx:xxxx/library/my_ubuntu:v1.0 3.2.3 删除镜像库中指定镜像 # 删除本地镜像 docker rmi image_name(或者image id,id通过docker images查看) # 删除远程仓库中的镜像建议去harbor可视化界面操作
本文作者:BaldButStrong
本文链接:https://www.cnblogs.com/supersimple/p/18499624
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步