1、docker介绍
Docker 是⼀个开源的容器运⾏时软件(容器运⾏时是负责运⾏容器的软件),基于 Go 语 ⾔编写,并遵从 Apache2.0 协议开源。
Docker可以让开发者打包⾃⼰的应⽤以及依赖到⼀个轻量的容器中,然后发布到任何流⾏的 Linux系统上(docker主要理念:⼀次封装随处运⾏)
Docker的思想来源于集装箱,让容器与容器之间相互隔离,与系统相互隔离提⾼程序之间的 安全,更重要的是容器性能开销极低
docker官⽹:www.docker.com
Docker 官⽅博客: Blog | Docker
2、Docker组成部分
镜像(images):⽤来创建容器的模板(静态⽂件),⼀个镜像可以创建多个容器(容器动 态)
容器(container): 程序的载体,程序运⾏在容器中,每个容器相互隔离,互不影响,但可 以相互通讯
仓库(Repository):集中存放镜像的场所,仓库分为公开仓库(public)和私有仓库 (private)两种
最⼤的公开仓库为docker hub:https://hub.docker.com
国内的公开仓库包括:阿⾥、⽹易、中科⼤等
环境:
Redhat 9
步骤:
安装docker之前 先配置阿里云仓库
安装yum 工具包
[root@admin ~]# yum -y install yum-utils.noarch
正在更新 Subscription Management 软件仓库。
无法读取客户身份
本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。
AppStream 3.1 MB/s | 3.2 kB 00:00
BaseOS 2.7 MB/s | 2.7 kB 00:00
依赖关系解决。
======================================================================================================================================================================================
软件包 架构 版本 仓库 大小
======================================================================================================================================================================================
安装:
yum-utils noarch 4.3.0-5.el9_2 BaseOS 45 k
事务概要
======================================================================================================================================================================================
安装 1 软件包
总计:45 k
安装大小:23 k
下载软件包:
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
准备中 : 1/1
安装 : yum-utils-4.3.0-5.el9_2.noarch 1/1
运行脚本: yum-utils-4.3.0-5.el9_2.noarch 1/1
验证 : yum-utils-4.3.0-5.el9_2.noarch 1/1
已更新安装的产品。
已安装:
yum-utils-4.3.0-5.el9_2.noarch
完毕!
增加阿里云仓库
[root@admin ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
正在更新 Subscription Management 软件仓库。
无法读取客户身份
本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。
添加仓库自:http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@admin ~]# cd /etc/yum.repos.d/
[root@admin yum.repos.d]# ls
docker-ce.repo local.repo redhat.repo
[root@admin ~]# yum clean all && yum makecache
正在更新 Subscription Management 软件仓库。
无法读取客户身份
本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。
20 个文件已删除
正在更新 Subscription Management 软件仓库。
无法读取客户身份
本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。
Docker CE Stable - x86_64 62 kB/s | 41 kB 00:00
AppStream 211 MB/s | 6.3 MB 00:00
BaseOS 220 MB/s | 1.7 MB 00:00
元数据缓存已建立。
[root@admin ~]#
安装docker软件包
[root@admin ~]# yum -y install docker-*
正在更新 Subscription Management 软件仓库。
无法读取客户身份
本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。
上次元数据过期检查:0:52:06 前,执行于 2024年03月29日 星期五 19时28分58秒。
软件包 docker-buildx-plugin-0.13.1-1.el9.x86_64 已安装。
软件包 docker-ce-3:26.0.0-1.el9.x86_64 已安装。
软件包 docker-ce-cli-1:26.0.0-1.el9.x86_64 已安装。
软件包 docker-ce-rootless-extras-26.0.0-1.el9.x86_64 已安装。
软件包 docker-compose-plugin-2.25.0-1.el9.x86_64 已安装。
软件包 docker-scan-plugin-0.23.0-3.el9.x86_64 已安装。
依赖关系解决。
无需任何处理。
完毕!
[root@admin ~]#
配置docker镜像加速 直接粘贴即可
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://7f40piyw.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
拉取nginx 镜像
[root@admin ~]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
a2abf6c4d29d: Downloading [==========================> ] 16.72MB/31.36MB
a9edb18cadd1: Downloading [=================================> ] 16.76MB/25.35MB
589b7251471a: Download complete
186b1aaa4aa6: Download complete
b4df32aa5a72: Download complete
a0bcbecc962e: Download complete
[root@admin ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 605c77e624dd 2 years ago 141MB
[root@admin ~]#
完成容器的创建 配置端口映射然后挂载进行持久化存储
创建目录添加一个index.html文件修该内容
vim编辑文件添加html代码
[root@admin ~]# mkdir /docker/www/ -p
[root@admin www]# ls
index.html
创建容器
[root@admin ~]# docker run -itd --name=nginx -p 80:80 -v /docker/www/;/usr/share/nginx/html nginx:latest
c89e5b4847dd7cade7276e5c9ef03acd71ce1d77ed7c4388e6e1fd715ef53072
[root@admin ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c89e5b4847dd nginx:latest "/docker-entrypoint.…" 13 seconds ago Up 11 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp nginx
[root@admin ~]#
查看端口
[root@admin ~]# netstat -anltp | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 87317/docker-proxy
tcp6 0 0 :::80 :::* LISTEN 87322/docker-proxy
[root@admin ~]#
浏览器测试访问web页面