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
相关推荐
只会copy的搬运工4 分钟前
Jenkins 持续集成部署——Jenkins实战与运维(1)
运维·ci/cd·jenkins
catoop12 分钟前
K8s 无头服务(Headless Service)
云原生·容器·kubernetes
娶不到胡一菲的汪大东19 分钟前
Ubuntu概述
linux·运维·ubuntu
阿里嘎多学长29 分钟前
docker怎么部署高斯数据库
运维·数据库·docker·容器
Yuan_o_32 分钟前
Linux 基本使用和程序部署
java·linux·运维·服务器·数据库·后端
灯火不休➴1 小时前
[Xshell] Xshell的下载安装使用、连接linux、 上传文件到linux系统-详解(附下载链接)
linux·运维·服务器
小峰编程1 小时前
独一无二,万字详谈——Linux之文件管理
linux·运维·服务器·云原生·云计算·ai原生
明 庭1 小时前
Ubuntu下通过Docker部署Caddy服务器
服务器·ubuntu·docker
张国荣家的弟弟1 小时前
【Yonghong 企业日常问题04】永洪BI可视化工具Linux部署全攻略(部署详解版)
linux·运维·github
娶不到胡一菲的汪大东1 小时前
Linux的VIM基本操作
linux·运维·服务器