一.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