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
相关推荐
JIAKSK21 分钟前
VitePress 接入百度统计:全面教程与优化指南
运维·数据可视化
网硕互联的小客服44 分钟前
未来趋势:AI与量子计算对服务器安全的影响
运维·服务器·网络·网络安全·量子计算
宇钶宇夕1 小时前
STEP 7 MicroWIN SMART V2.2 的详细安装步骤及注意事项
运维·服务器·程序人生·自动化
czhc11400756632 小时前
Linux 77 FTP
linux·运维·服务器
魂尾ac2 小时前
Centos Docker 安装(100%成功)
linux·docker·centos
天若有情6732 小时前
【Linux】02_CentOS 7 开机运行级别详解:从基础概念到实战配置
linux·运维·centos
張萠飛2 小时前
Linux中程序的limits中的Max open files的配置由哪些参数决定
linux·运维·服务器
Johny_Zhao8 小时前
Docker + CentOS 部署 Zookeeper 集群 + Kubernetes Operator 自动化运维方案
linux·网络安全·docker·信息安全·zookeeper·kubernetes·云计算·系统运维
zwjapple9 小时前
docker-compose一键部署全栈项目。springboot后端,react前端
前端·spring boot·docker
一心09210 小时前
ubuntu 20.04.6 sudo 源码包在线升级到1.9.17p1
运维·ubuntu·sudo·漏洞升级