Docker基础:VMware虚拟机Centos7环境下docker安装及使用
1.docker简介
官网https://docs.docker.com/engine/install/
1.1 镜像(image)
docker镜像就好比是一个目标,可以通过这个目标来创建容器服务,通过镜像可以创建多个容器
1.2 容器(container)
docker利用容器技术,运行一个或者一组应用,通过镜像来创建的。
启动,停止,删除,基本命令
目前可以同期理解为一个简易的Linux系统
1.3 仓库(repository)
仓库用来存储镜像
我是利用虚拟机搭建的centos环境,关于虚拟机的搭建可以参考https://www.cnblogs.com/pengboke/p/13063168.html
手动安装
2.1 卸载旧版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2.2 安装所需的软件包
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
2.3 设置仓库(以下选一种即可)
2.3.1 官方源地址
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
2.3.2 阿里云
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2.3.3 清华大学源
sudo yum-config-manager \
--add-repo \
https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
2.4 安装最新版本的 Docker Engine-Community 和 containerd(docker-ce是社区版 而ee是企业版)
列出并排序您存储库中可用的版本(以下任选一种方案)
(1)安装特定版本
查看docker版本
yum list docker-ce --showduplicates | sort -r
安装特定版本
sudo yum install docker-ce-<version_string> docker-ce-cli-<version-string> containerd.io
(2)或者直接执行以下命令安装最新版
sudo yum install docker-ce docker-ce-cli containerd.io
2.5 启动 Docker
sudo systemctl start docker
2.6 运行 hello-world 进行验证
sudo docker run hello-world
2.7 开机自启动
systemctl enable docker
3.1 删除安装包
yum remove docker-ce
3.2 删除镜像、容器、配置文件等内容
rm-rf /var/lib/docker
4.1 vim /etc/docker/daemon.json 4.2 { "registry-mirrors": ["https://****.mirror.aliyuncs.com"] }
4.3 # 重启服务 systemctl daemon-reload systemctl restart docker
4.4 docker info 查看docker信息 最后几行
docker version #显示docer的版本信息
docker info #显示docker的系统信息 包括镜像和容器的数量
docker 命令 --help #命令
docker images #查看所有本地主机上的镜像 可以使用docker image ls代替
dokcer search #搜索镜像
dokcer pull #下载镜像 docker image pull 分层下载
docker rmi #删除镜像docker image rm
docker rmi -f 镜像id #根据镜像id删除
docker rmi -f 镜像id 镜像id 镜像id #删除多个镜像
docker rmi -f $(docker images -aq) #删除所有镜像
5.3 容器命令
docker run 镜像id #新建容器并启动
docker run -it centos /bin/bash
exit #容器直接退出
ctrl + P + Q #容器不停止退出
docker ps #列出所有的运行的容器 docker container list
docker ps -aq
docker rm 容器id #删除指定容器
docker rm -f $(docker ps -aq) #删除所有容器
docker ps -a -q | xargs docker rm #删除所有容器
dokcer start 容器id #启动容器
docker restart 容器id #重启容器
docker stop 容器id #停止当前正在运行的容器
dokcer kill 容器id #强制停止当前容器
docker ps 后发现 centos停止了
docker容器使用后台运行,就必须要有要一个前台进程,docker发现没有应用,就会自动停止
nginx,容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了
docker run -d centos #后台启动命令
docker logs -t --tail n 容器id #查看n行日志
docker logs -ft 容器id #跟着日志
docker top 容器id #查看容器中进程信息id
docker top 694f11ed26d1
docker inspect 容器id #查看镜像的元数据
docker inspect 694f11ed26d1
docker exec -it 694f11ed26d1(容器id) /bin/bash #进入当前容器后开启一个新的终端,可以在里面操作。(常用)
docker attach 694f11ed26d1(容器id) # 进入容器正在执行的终端
6.1 安装nginx
docker run -d --name nginx00 -p 3344:80 nginx
6.2 查看容器
docker ps
6.3 查看nginx
7.1 安装tomcat
docker run -it --rm tomcat:9.0
7.2 下载tomcat
docker pull tomcat
7.3 启动运行
docker run -d -p 8080:8080 --name tomcat01 tomcat
7.4 测试访问
curl localhost:8080
7.5 进入容器
docker ps #查看当前运行容器
~ docker exec -it 1bacf343cd06/bin/bash #进入容器
8.1下载启动elasticsearch(docker一步搞定)
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2
如果需要重新启动 可以删除后再启动
docker ps -a
docker rm 4dc703d1130b
8.2测试es是否启动成功
curl localhost:9200
8.3查看doker容器使用内存情况
doker stats
8.4关闭 添加内存的限制 修改配置文件 -e 环境配置修改
8.4.1 docker ps -a
8.4.2 docker rm -f c00920e31f2c
8.4.3 修改配置文件并启动
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.6.2
8.5 测试es测试es是否启动成功
curl localhost:9200
9.1打开可视化服务(portainer)
docker run -d -p 8080:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!