docker实战演练

一.docker简介

二.docker部署

1.解压并安装所需要的软件

复制代码
[root@docker-node1 ~]# ls
anaconda-ks.cfg        docker.tar.gz    mario.tar.gz
busybox-latest.tar.gz  game2048.tar.gz  nginx-latest.tar.gz
[root@docker-node1 ~]# tar zxf docker.tar.gz 
[root@docker-node1 ~]# ls
anaconda-ks.cfg
busybox-latest.tar.gz
containerd.io-1.7.20-3.1.el9.x86_64.rpm
docker-buildx-plugin-0.16.2-1.el9.x86_64.rpm
docker-ce-27.1.2-1.el9.x86_64.rpm
docker-ce-cli-27.1.2-1.el9.x86_64.rpm
docker-ce-rootless-extras-27.1.2-1.el9.x86_64.rpm
docker-compose-plugin-2.29.1-1.el9.x86_64.rpm
docker.tar.gz
game2048.tar.gz
mario.tar.gz
nginx-latest.tar.gz
[root@docker-node1 ~]# yum install *.rpm -y

2.启动服务并从归档文件中加载镜像

复制代码
[root@docker-node1 ~]# systemctl enable --now docker
[root@docker-node1 ~]# docker load -i game2048.tar.gz 
[root@docker-node1 ~]# docker load -i mario.tar.gz 
[root@docker-node1 ~]# docker load -i nginx-latest.tar.gz 
[root@docker-node1 ~]# docker load -i busybox-latest.tar.gz 

3.测试:

复制代码
[root@docker-node1 ~]# docker run -d --rm --name game1 -p 80:80 timinglee/game2048:latest 
复制代码
[root@docker-node1 ~]# docker rm -f game1 
[root@docker-node1 ~]# docker run -d --rm --name game2 -p 80:8080 timinglee/mario:latest 

三.docker的基本操作

<1>.docker镜像管理

1.搜索镜像

复制代码
[root@Docker-node1 ~]# docker search nginx

2.拉取镜像

复制代码
[root@Docker-node1 ~]# docker pull busybox

3.查看镜像信息

复制代码
[root@Docker-node1 ~]# docker image inspect nginx:1.26-alpine

4.导出镜像
-o :指定导出镜像的位置; 可以同时导出多个镜像到一个文件中; 指定 .tar.gz 可以导出并压缩。

复制代码
[root@Docker-node1 ~]# docker image save nginx:latest -o nginx-latest.tar.gz
[root@Docker-node1 ~]# docker save `docker images | awk 'NR>1{print $1":"$2}'` -o images.tar.gz

5.删除镜像

复制代码
[root@Docker-node1 ~]# docker rmi nginx:latest
[root@Docker-node1 ~]# docker rmi `docker images | awk 'NR>1{print $1":"$2}'`

<2>.容器的常用操作

|-----------|------------------------------------|
| -d | 后台运行 |
| -i | 交互式运行 |
| -t | 打开一个终端 |
| --name | 指定容器名称 |
| -p | 端口映射 -p 80:8080 把容器8080端口映射到本机80端口 |
| --rm | 容器停止自动删除容器 |
| --network | 指定容器使用的网络 |

1.启动容器

复制代码
[root@Docker-node1 ~]# docker run -d --name mario -p 80:8080 timinglee/mario

进入到容器中,按<ctrl>+<d>退出并停止容器,按<ctrl>+<pq>退出但不停止容器

复制代码
[root@Docker-node1 ~]# docker run -it --name centos7 centos:7

重新进入容器

复制代码
[root@docker ~]# docker attach centos7

在容器中执行命令

复制代码
[root@docker ~]# docker exec -it test ifconfig

2.查看容器运行信息

复制代码
[root@Docker-node1 ~]# docker ps              #查看当前运行容器
[root@Docker-node1 ~]# docker ps -a           #查看所有容器
[root@Docker-node1 ~]# docker inspect busybox #查看容器运行的详细信息

3.停止和运行容器
容器内的第一个进程必须一直处于运行的状态,否则这个容器,就会处于退出状态!

复制代码
[root@Docker-node1 ~]# docker stop busybox  #停止容器
[root@Docker-node1 ~]# docker kill busybox  #杀死容器,可以使用信号
[root@Docker-node1 ~]# docker start busybox #开启停止的容器

4.删除容器

复制代码
[root@Docker-node1 ~]# docker rm centos7         #删除停止的容器
[root@Docker-node1 ~]# docker rm -f busybox      #删除运行的容器
[root@Docker-node1 ~]# docker container prune -f #删除所有停止的容器

5.容器内容提交
默认情况下,容器被删除后,在容器中的所有操作都会被清理,包括要保存的文件,如果想永久保存,那么我们需要把动作提交,提交后会生成新的镜像,当我们在运行新镜像后即可看到我们提交的内容。此方法不利于企业审计,所以不推荐使用,在企业中我们多用 Dockerfile 来构建镜像。

6.系统中的文件和容器中的文件传输

7.查询容器内部日志

复制代码
[root@Docker-node1 ~]# docker logs web
相关推荐
K姐研究社16 分钟前
OiiOii 2.0 实测 – 智能画布实现 AI 视频创作自动化
运维·人工智能·自动化
bukeyiwanshui35 分钟前
20260624 k8s pod命令
云原生·容器·kubernetes
wang_shu_mo_ran1 小时前
网络编程(一):网络编程初识
运维·服务器·网络
sukioe2 小时前
【无标题】
后端·docker·centos
姚青&2 小时前
持续交付与 DevOps 体系
运维·devops
ton_tom2 小时前
设备驱动程序编程-Linux2.6.10-kdb安装-32位
linux·运维·服务器
Elastic 中国社区官方博客2 小时前
谁来评判评判者?在 Elasticsearch Workflows 中使用 LLM-as-a-Judge
大数据·运维·人工智能·elasticsearch·搜索引擎·ai·全文检索
HAPPY酷3 小时前
【ROS2】VMware + Docker 运行 Gazebo 崩溃与“假死”排查实录
qt·docker·容器
SSO_Crown3 小时前
AI 招聘管理系统深度评测与选型指南
大数据·运维·人工智能
cft56200_ln4 小时前
gPTP Master 报文目的 MAC 地址
运维·服务器·网络