SourceURL:file:///home/student/Desktop/容器技术.doc
docker 安装部署
- 把 docker 软件包添加到自定义 yum 仓库中
[root@server s4]# rsync -av docker/ 192.168.88.240:/var/ftp/rpms/docker/
root@192.168.88.240's password:
# 更新 repodata
[root@server s4]# ssh 192.168.88.240
root@192.168.88.240's password:
[root@pubserver ~]# createrepo --update /var/ftp/rpms
容器安装部署
主机名 | IP地址 | 最低配置 |
docker-0001 | 192.168.88.31 | 2CPU,4G内存 |
docker-0002 | 192.168.88.32 | 2CPU,4G内存 |
# 配置 docker 安装 yum 源
[root@docker ~]# vim /etc/yum.repos.d/docker.repo
[Docker]
name=Rocky Linux $releasever - Docker
baseurl="ftp://192.168.88.240/rpms"
enabled=1
gpgcheck=0
# 更新缓存
[root@docker ~]# dnf makecache
# 安装 docker 服务
[root@docker ~]# dnf install -y docker-ce
[root@docker ~]# systemctl enable --now docker
# docker 需要开启路由转发
[root@docker ~]# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
信息查询命令
命令 | 说明 |
docker version | 查看服务器与客户端版本 |
docker info | 查看 docker 服务配置信息 |
镜像代理服务
[root@docker ~]# vim /etc/docker/daemon.json
{
"registry-mirrors": ["这里配置镜像仓库加速器地址"],
"insecure-registries":[]
}
[root@docker ~]# systemctl restart docker
# 查看 docker 服务配置信息
[root@docker ~]# docker info
... ...
Insecure Registries:
127.0.0.0/8
Registry Mirrors:
https://镜像仓库加速器/
Live Restore Enabled: false
容器管理
管理命令(1)
镜像管理命令 | 说明 |
docker images | 查看本机镜像 |
docker pull 镜像名称:标签 | 下载镜像 |
docker save 镜像名称:标签 -o 文件名 | 备份镜像为tar包 |
docker load -i 备份文件名称 | 导入备份的镜像文件 |
docker history 镜像名称:标签 | 查看镜像的制作历史 |
# 下载 busybox 镜像
[root@docker ~]# docker pull busybox:latest
# 查看本机镜像
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox latest a9d583973f65 2 years ago 1.23MB
# 备份镜像为 tar 包
[root@docker ~]# docker save busybox:latest -o busybox.tar
# 使用 tar 包恢复镜像
[root@docker ~]# docker load -i busybox.tar
导入备份镜像
- 拷贝本阶段 public/myos.tar.xz 镜像包到 docker 主机
[root@server s4]# rsync -av public/myos.tar.xz 192.168.88.31:./
# 导入镜像
[root@docker ~]# docker load -i myos.tar.xz
# 查看本机镜像
[root@docker ~]# docker images
# 查看镜像的制作历史
[root@docker ~]# docker history myos:8.5
管理命令(2)
容器管理命令 | 说明 |
docker run -it(d) 镜像名称:标签 | 创建容器 |
docker ps | 查看容器的信息 |
docker inspect 镜像名称|容器名称 | 查询(容器/镜像)的详细信息 |
docker [start|stop|restart] 容器id | 启动、停止、重启容器 |
docker exec -it 容器ID 启动命令 | 在容器内执行命令 |
docker logs 容器ID | 查看容器日志 |
docker cp 路径1 路径2 | 拷贝文件:路径格式(本机路径、容器ID/路径) |
创建容器(续1)
docker run 常用参数
参数 -i 交互式
参数 -t 分配终端
参数 -d 后台运行
参数 --name 容器名字
参数 --rm 容器结束后自动删除 临时容器
转入后台快捷键(ctrl-p + ctrl-q)
# 创建一个容器
[root@docker ~]# docker run -it myos:8.5
[root@3aa1df05b795 /]# hostname
3aa1df05b795
[root@3aa1df05b795 /]# ps -ef
[root@3aa1df05b795 /]# ifconfig eth0
创建后台容器
[root@docker ~]# docker run -itd myos:httpd
# 创建名为web1的后台容器
[root@docker ~]# docker run -itd --name web1 myos:nginx
# 查询容器状态
[root@docker ~]# docker ps
root@docker ~]# docker ps -a -a 显示所有容器
[root@docker ~]# docker ps -aq -q只显示id
启动容器
[root@docker ~]# docker start web1 47ded92f442f
# 停止容器
[root@docker ~]# docker stop web1
# 重启容器
[root@docker ~]# docker restart web1
# 命令替换,停止所有容器
[root@docker ~]# docker stop $(docker ps -aq)
# 命令替换,启动容器
[root@docker ~]# docker start $(docker ps -aq)
# 命令替换,停止所有容器
[root@docker ~]# docker stop $(docker ps -aq)
#创建临时容器,关闭后就没有
docker run -it --rm --name ll myos:8.5
exec、cp、logs
(容器开机)
# 在容器外执行非交互命令
[root@docker ~]# docker exec -it web1 ls
# 在进入容器内部执行交互命令
[root@docker ~]# docker exec -it web1 bash
[root@14b669a75a95 html]# ifconfig eth0
# 查询镜像的详细信息
[root@docker ~]# docker inspect myos:httpd
# 查询容器的详细信息
[root@docker ~]# docker inspect web1 6d6884244a99
# 从容器内拷贝文件出来
[root@docker ~]# docker cp web1:/usr/local/nginx/conf ./
例docker cp nb:/usr/local/nginx/conf/nginx.conf ./nginx.conf
docker cp ./nginx.conf nb:/usr/local/nginx/conf/nginx.conf
# 重启容器
[root@docker ~]# docker restart web1
# 查看日志排错
[root@docker ~]# docker logs web1
管理命令(3)
管理命令 | 说明 |
docker rm 容器ID | 删除容器 |
docker tag 镜像ID:标签 镜像名称:新的标签 | 创建新的镜像名称和标签 |
docker rmi 镜像名称:标签 | 删除镜像(必须先删除该镜像启动的所有容器) |
# 删除容器
[root@docker ~]# docker rm 47ded92f442f
# 强制删除容器
[root@docker ~]# docker rm -f web1
# 删除所有容器
[root@docker ~]# docker rm -f $(docker ps -aq)
6d6884244a99
# 删除一个镜像
docker rmi -f myos:nginx
# 已经创建了容器的镜像无法删除
# 给镜像设置一个新的名称标签
[root@docker ~]# docker tag 10dc658da2fe myos:nginx
简单镜像制作
# 使用基础镜像创建一个容器
[root@docker ~]# docker run -itd --name linux rockylinux:8.5
# 删除容器内的Yum配置文件
[root@docker ~]# docker exec -it linux rm -rf /etc/yum.repos.d
# 关闭秘钥检查
[root@docker ~]# sed -ri 's,(gpgcheck).*,\1=0,' /etc/yum.repos.d/*.repo
# 拷贝宿主机的Yum配置文件到容器内
[root@docker ~]# docker cp /etc/yum.repos.d linux:/etc/
# 在容器内安装工具软件包
[root@docker ~]# docker exec -it linux dnf install -y net-tools vim-enhanced tree bash-completion iproute procps-ng psmisc
# 清理缓存文件
[root@docker ~]# docker exec -it linux dnf clean all
# 停止容器
[root@docker ~]# docker stop linux
# 把容器制作成镜像
[root@docker ~]# docker commit linux mylinux:latest
# 查看新制作的镜像
[root@docker ~]# docker images
# 删除制作镜像的容器 [root@docker ~]# docker rm -f linux