Docker 学习入门
目录
- 一、Docker 简介
- 1、什么是 Docker
- 2、为什么要用 Docker
- 3、Docker 基本组成
- 二、Docker 安装
- 1、CentOS7 安装步骤
- 2、Docker 命令
- 三、镜像管理
- 1、镜像简介
- 2、镜像管理
- 四、容器管理
- 1、创建容器
- 2、容器资源限制
- 3、容器常用命令
- 五、管理应用程序数据
- 1、Volume
- 2、Bind Mounts
- 六、容器网络
- 1、Docker 网络模式
- 2、容器网络访问原理
- 七、制作镜像
- 1、Dockerfile
- 2、构建基础镜像
- 八、镜像仓库
- 1、Habor
- 2、安装 Docker Compose
- 3、安装 Harbor
- 4、Harbor 简单使用
- 九、图形化管理
- 1、安装 Portainer
- 2、访问 Portainer
回到顶部回到顶部https://docs.docker.com/install/。后面的学习在 Linux CentOS7 上测试。 https://docs.docker.com/install/linux/docker-ce/centos/
① 卸载旧版本
# yum remove docker docker-common docker-selinux
② 安装依赖包
# yum install -y yum-utils device-mapper-persistent-data lvm2
③ 安装 Docker 软件包源
# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
④ 安装 Docker CE
# yum install docker-ce
⑤ 启动 Docker 服务
# systemctl start docker
⑥ 设置开机启动
# systemctl enable docker
⑦ 验证安装是否成功
# docker -v回到顶部https://hub.docker.com/explore
# docker info
如果从 Docker Hub 下载镜像非常缓慢,可以先配置镜像加速器,参考:https://www.daocloud.io/mirror
Linux下通过以下命令配置镜像站:
# curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io # systemctl restart docker
① 搜索镜像 :docker search
OFFICIAL:是否官方版本;
② 下载镜像 :docker pull [选项] [Docker Registry地址]<仓库名>:<标签>
Docker Registry地址:地址的格式一般是 <域名/IP>[:端口号] 。默认地址是Docker Hub。
仓库名:仓库名是两段式名称,既 <用户名>/<软件名> 。对于 Docker Hub,如果不给出用户名,则默认为 library ,也就是官方镜像。
③ 列出本地镜像 :docker images [选项]
TAG:标签版本;IMAGE ID:镜像ID;SIZE:镜像大小;
查看虚悬镜像(镜像既没有仓库名,也没有标签,显示为
默认的 docker images 列表中只会显示顶层镜像,如果希望显示包括中间层镜像在内的所有镜像:docker images -a
只列出镜像ID:docker images -q
列出部分镜像:docker images redis
以特定格式显示:docker images --format "{{.ID}}: {{.Repository}}"
④ 给镜像打 Tag :docker tag
镜像的唯一标识是其 ID 和摘要,而一个镜像可以有多个标签。
⑤ 删除本地镜像 :docker rmi [选项] <镜像1> [<镜像2> ...]
<镜像> 可以是镜像短 ID、镜像长 ID、镜像名或者镜像摘要。
删除镜像的时候,实际上是在要求删除某个标签的镜像。所以首先需要做的是将满足我们要求的所有镜像标签都取消,这就是我们看到的Untagged 的信息。
镜像是多层存储结构,因此在删除的时候也是从上层向基础层方向依次进行判断删除。镜像的多层结构让镜像复用变得非常容易,因此很有可能某个其它镜像正依赖于当前镜像的某一层。这种情况,不会触发删除该层的行为。直到没有任何层依赖当前层时,才会真实的删除当前层。
除了镜像依赖以外,还需要注意的是容器对镜像的依赖。如果有用这个镜像启动的容器存在(即使容器没有运行),那么同样不可以删除这个镜像。如果这些容器是不需要的,应该先将它们删除,然后再来删除镜像。
⑥ 批量删除镜像
删除所有虚悬镜像:docker rmi $(docker images -q -f dangling=true)
删除所有仓库名为 redis 的镜像:docker rmi $(docker images -q redis)
删除所有在 mysql:8.0 之前的镜像:docker rmi $(docker images -q -f before=mysql:8.0)
⑦ 导出镜像:docker save -o <镜像文件> <镜像>
可以将一个镜像完整的导出,就可以传输到其它地方去使用。
⑧ 导入镜像:docker load -i <镜像文件>
回到顶部回到顶部回到顶部回到顶部回到顶部Installation and Configuration GuideHarbor 使用文档参考:User Guide
安装 Harbor 前,需确保硬件条件至少 2核4G内存40G的硬盘,本机需已安装 docker、docker-compose、openssl。
https://github.com/goharbor/harbor/releases# wget https://storage.googleapis.com/harbor-releases/release-1.9.0/harbor-offline-installer-v1.9.1.tgz
② 解压
# tar zxvf harbor-offline-installer-v1.9.1.tgz # cd harbor
③ 修改配置文件
# vim harbor.yml
主要修改 hostname 为可访问的域名或IP、修改管理员密码
④ 安装
# ./prepare # ./install.sh
Harbor 安装成功后,实际上就是通过 docker compose 启动了相关组件的容器
⑤ Harbor 生命周期管理
harbor 基于 docker compose 编排部署,因此可以使用 docker-compose 命令来管理 harbor 的生命周期。
首先切到 harbor 根目录下
停止 harbor:docker-compose stop
重启 harbor:docker-compose start
修改配置:
# #先停止 harbor # docker-compose down -v # #修改 harbor.yml # vim harbor.yml # #运行 prepare 填充配置 # ./prepare # #启动harbor # docker-compose up -dUser Guide
通过新建项目创建一个项目(bojiangzhou)用于测试。公开项目不需登录就可以下载镜像,私有的需要登录;上传镜像则都需要登录才能上传镜像。
推送镜像的命令格式可以参考如下:
② 创建用户
若想上传镜像,需要用户登录,首先在用户管理创建用户:
接着在项目中添加用户成员:
③ 前置配置
上传镜像之前,首先需要将 harbor 仓库配置为 docker 授信的仓库,否则将被拒绝连接:
vim /etc/docker/daemon.json
# 配置如下内容
{
"registry-mirrors": ["http://f1361db2.m.daocloud.io"],
"insecure-registries": ["192.168.31.54"]
}
之后重启 docker 和 harbor:
#systemctl restart docker # cd /docker-test/harbor # docker-compose up -d
④ 镜像仓库登录退出
登录:docker login registry
退出:docker logout registry
⑤ 上传镜像
首先需要给镜像打 Tag:docker tag SOURCE_IMAGE[:TAG] 192.168.31.54/bojiangzhou/IMAGE[:TAG]
接着推送镜像:docker push 192.168.31.54/bojiangzhou/IMAGE[:TAG]
可以看到镜像已经推送到镜像仓库了:
下载仓库镜像:docker pull 192.168.31.54/bojiangzhou/nginx-app:1.0.0
回到顶部九、图形化管理
Portainer 是一个开源、轻量级 Docker 管理用户页面,基于 Docker API,管理 Docker 主机。一般单机下不会使用图形管理页面,这里简单了解下就好。
1、安装 Portainer
① 创建数据卷:docker volume create portainer_volume
② 启动 Portainer 容器:docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_volume:/data portainer/portainer
2、访问 Portainer
访问 ip:9000,即可进入 Portainer 管理页面,首先需要创建一个管理用户
接着连接本机
连接本地进入后就可以进行容器、镜像等的管理了。
--------------------------------------------------------------------------------------------------------------------------------