当前位置: 首页 > news >正文

Docker 安装与使用

1. Docker 的安装

1.1 docker 的安装

docker是一种容器技术,解决软件跨环境迁移的问题

# 补包

yum install -y yum-utils device-mapper-persistent-data lvm2 unzip

# 添加阿里云仓库

vi /etc/yum.repos.d/aliyum.repo

[base] name=base baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/ enabled=1 gpgcheck=0 [extras] name=extras baseurl=https://mirrors.aliyun.com/centos/7/extras/x86_64/ enabled=1 gpgcheck=0 [epel] name=Extra Packages for Enterprise Linux 7 - $basearch baseurl=http://mirrors.aliyun.com/epel/7/$basearch failovermethod=priority enabled=1 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
​ yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum makecache

# 安装docker

yum install -y docker-ce docker-ce-cli containerd.io

# 开启路由转发

vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

sysctl -p

1.2 配置镜像加速器

访问阿里云相关页面(https://promotion.aliyun.com/ntms/act/kubernetes.html)

搜索镜像服务

点击 管理控制台

执行操作文档中的命令

sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://2q6ap672.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker

1.3 镜像命令

docker images # 查看镜像 docker search 镜像名 # 搜索镜像 docker pull 镜像名 # 拉取镜像 docker pust 镜像名 # 推送镜像 docker rmi 镜像名 # 删除镜像

1.4 容器命令

docker ps # 查看容器 docker ps -a # 查看所有容器 docker ps -aq # 查看所有容器ID docker start/stop/restart/inspect/rm 容器名/容器ID # 启动/停止/重启/查看/删除 docker run -d # 创建容器 docker exec -it 容器名/容器ID # 进入容器

1.5 数据卷

宿主机中的一个目录或文件,用于数据持久化和容器间的数据交换

-v /usr/local/conf:/usr/lcoal/conf

# 部署tomcat

# 搜索镜像 docker search tomcat # 拉取镜像 docker pull tomcat:latest # 创建容器 docker run -d --name tomcat -p 18080:8080 \ -v /data/docker/volume/tomcat-app/:/usr/local/tomcat/webapps \ tomcat:latest # 查看容器 docker ps # 进入容器 docker exec -it tomcat /bin/bash

2. Dockerfile

Dockerfile是一个包含用于 组合镜像 的命令的文本文档 。可以使用在命令行中,调用任何命令

Docker 通过 dockerbuild命令 可以 读取Dockerfile中的指令 并自动生成新的 镜像

2.1 编写dockerfile

vim Dockerfile # Description: test image FROM busybox LABEL maintainer="natasha <natasha@163.com>" app="httpd" ENV WEBDIR="/data/web/html" RUN mkdir -p ${WEBDIR} && echo 'this is a test web' > ${WEBDIR}/index.html CMD [ "sh","-c","/bin/httpd -f -h ${WEBDIR}" ]

# 构建镜像

docker build -f Dockerfile -t apache:v1 /data/docker/Docker-file

2.2 dockerfile案例

### 提供基础镜像 Centos,(最接近完整虚拟机) [root@docker-31 /data/docker/images]# cd /data/docker/images/ [root@docker-31 /data/docker/images]# wget http://192.168.6.100/Docker/images/centos7.9.2009.tar [root@docker-31 /data/docker/images]# docker load < centos7.9.2009.tar ### 创建专用目录和相关的文件 [root@docker-31 /data/docker]# mkdir centos-nginx/ [root@docker-31 /data/docker]# cd centos-nginx/ ### 提供水果忍者游戏 和 阿里云yum配置 [root@docker-31 /data/docker/centos-nginx]# cp /etc/yum.repos.d/aliyun.repo ./ [root@docker-31 /data/docker/centos-nginx]# wget http://192.168.6.100/web/fruit-game.tar.gz [root@docker-31 /data/docker/centos-nginx]# ls aliyun.repo fruit-game.tar.gz ### 编写Dcokerfile FROM centos:centos7.9.2009 LABEL author="xunfang" version="7.9.2009" nginx_version="1.20" app="Game" WORKDIR /etc/yum.repos.d/ RUN rm -rf /etc/yum.repos.d/*.repo ADD aliyun.repo ./ ADD http://192.168.6.100/web/nginx-1.20.2.tar.gz /usr/local/src RUN yum clean all && yum makecache && yum install -y gcc zlib zlib-devel pcre pcre-devel openssl openssl-devel && groupadd -g 88 nginx && useradd -g nginx -M -s /sbin/nologin -u 88 nginx && cd /usr/local/src && tar xf nginx-1.20.2.tar.gz && cd nginx-1.20.2 && ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_sub_module --with-http_ssl_module --with-pcre && make && make install ADD fruit-game.tar.gz /usr/local/nginx/html/ WORKDIR /usr/local/nginx/html EXPOSE 80/tcp CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"] ### 执行构建 [root@docker-31 /data/docker/centos-nginx]# docker build -t centos-nginx-game:v1 /data/docker/centos-nginx ### 查看镜像 [root@docker-31 /data/docker/centos-nginx]# docker images ### 运行容器: docker run -d --name nginx-game-1 -p 88:80 centos-nginx-game:v1 ### windows测试 http://192.168.10.31:88 ### 登录容器查看: [root@docker-31 /data/docker/centos-nginx]# docker exec -it nginx-game-1 /bin/bash

3. Docker命令小结

docker -v docker --help docker version docker info docker ps docker ps -a docker images docker search docker pull docker save -o docker load < docker rmi docker rm -f docker attach 返回主程序,1号 docker exec 在主程序上,运行新的程序 非 1号 docker inspect 查看 容器/镜像 明细 ctrl + p + q docker run -it --name -p -d docker start 启动一个挂掉的容器

4. Docker-compose

Docker的服务编排工具,主要用来构建基于 Docker 的复杂应用,通过 YAML 文件声明式

# 安装docker-compose

curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 授权

chmod +x /usr/local/bin/docker-compose

# 运行docker-compose

docker-compose up

# 后台运行docker-compose

docker-compose up -d

http://www.jsqmd.com/news/1015810/

相关文章:

  • 别再为小程序蓝牙连接发愁了!保姆级避坑指南(附完整代码)
  • 手把手教你用示波器抓取ESP32-C3FN4的BROWNOUT_RST瞬间,定位电源纹波元凶
  • 数据结构实验避坑指南:严蔚敏C语言版‘图书信息管理’常见报错与调试技巧
  • .kode/agents/reviewer.md
  • 别再只用WPA2了!实测用Kali Linux的Aircrack-ng破解自家WiFi,教你设置真正安全的密码策略
  • 避坑指南:你的通达信主买主卖指标为什么不准?可能是这些细节没调好
  • 2026年幕墙材料公司推荐指南:谁更值得信赖?——基于技术、产能与案例的行业分析 - 优质品牌商家
  • 2026永康别墅门批发,高性价比之选
  • 欧姆龙CP1E/CP1H系列PLC编程避坑指南:关于DM区、定时器T和计数器C的那些容易搞混的细节
  • CF2232C1题解
  • 从NISP考题看实战:Windows系统安全配置的10个关键点与避坑指南
  • 2025_NIPS_Task-aware world model learning with meta weighting via bi-level optimization
  • 使用cuda编写并运行你的第一个程序(基于WSL2+vscode)
  • HFSS仿真报错别慌!手把手教你搞定‘Acis error’、‘Optimization failed’等5个高频坑
  • 避坑指南:解决URDF添加摄像头后Gazebo不显示图像或Topic无法发布的常见问题
  • UniApp微信小程序选点踩坑记:从requiredPrivateInfos报错到manifest.json正确配置
  • Linux fat_add_cluster FAT32簇链与shortname生成
  • DeepLab_v3评估指标详解:mIoU、像素准确率等关键指标计算
  • MTK平台DWS配置GPIO,这10个选项别再乱勾了(附EintMode中断避坑指南)
  • Flask部署PyTorch模型时,我踩过的5个坑和解决办法(附打包exe避雷指南)
  • 在飞腾FT2000+上编译openEuler内核,卡在exiting boot services?手把手教你用系统自带config避坑
  • ArcMap地图导出AI格式后,在Illustrator里编辑总失败?试试这个保姆级避坑流程
  • 哪个豆包可以生成 word 文档?AI 导出鸭助力文档一键生成,高效便捷超实用
  • iOS 15+ WebView/Safari 下 WebSocket 神秘断连?手把手教你定位并关闭‘permessage-deflate’压缩头
  • uaal-example完全指南:如何将Unity无缝集成到iOS和Android原生应用中
  • GPR数据切片(Slice)实战:从3D数据到清晰成像,关键参数设置与避坑指南
  • 从热失控到封装熔断:一张SOA图背后的5个MOSFET“死亡陷阱”与实测避坑
  • STC8G1K08A-8PIN开发踩坑记:为什么P54引脚不能当普通IO用?一个实习生的血泪教训
  • Prometheus日志里总报‘无序时间戳’?别慌,这5个配置坑你肯定踩过
  • 别再乱改文件夹权限了!一次搞懂SFTP的chroot目录所有权和权限设置(附CentOS 7.3实战)