Docker简单使用

1.简单认识

软件的打包技术,就是将打乱的多个文件打包为一个整体,比如想使用nginx,需要先有一台linux的虚拟机,然后在虚拟机上安装nginx.比如虚拟机大小1G,nginx100M。当有了docker后我们可以下载nginx 的镜像文件,直接运行即可。

镜像:images,是个压缩包文件,里面存放着安装好的程序。

容器:Container,Docker利用容器来运行应用。容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。

2.docker安装

https://docs.docker.com/engine/install/debian/#installation-methods

bash 复制代码
// linux 安装

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

//启动
systemctl start docker
//自启
systemctl enable docker

3.镜像常用指令

bash 复制代码
docker search  xxx #在docker仓库中寻找 镜像
bash 复制代码
docker images  #查看本地镜像列表
bash 复制代码
docker pull 下载镜像,拉取镜像
bash 复制代码
docker push # 上传镜像,推送镜像,推到官方仓库
docker rmi xxx
 #删除镜像,rm 删除image的意思,直接rm不加i表示要删除容器,可以通过名称加版本来删除,或者直接通过镜像id值来删除
 #docker rmi tomcat:latest 或者 docker rmi imageid值

4.容器常用命令

bash 复制代码
docker ps =docker container ls #参数: 默认之显示up状态的容器,-a查看所有容器,或者--
bash 复制代码
docker stop   停止容器  #例子 docker stop 容器id或者容器名字
docker kill   杀掉容器  #强制关闭容器,尽量不要用,很容易就启动不了了
docker start   启动容器  #例子 docker start 容器id或者容器名字
docker restart 重启重启  #例子 docker restart 容器id或者容器名字
docker rm     删除容器  #例子 docker rm 容器id或者容器名字,同时删除多个,就空格隔

删除容器前要停止容器。

bash 复制代码
docker rm -f `docker ps -a -q` #删除所有容器,-q是只显示容器id,反引号中的指令优先执行
bash 复制代码
docker top   查看容器内的进程  #例子docker top 容器id或者容器名字
docker stats 查看容器的资源占用情况
bash 复制代码
docker exec -it   进入容器  #例子: docker exec -it 容器id或者容器名字
 # 直接交互指令:docker exec -it 76738703b7b2 ls # 执行ls指令
 # 进入终端:docker exec -it 76738703b7b2 /bin/bash或者/bin/sh #/bin/bash打开一个终端窗口

5.使用docker安装软件

安装nginx /mysql

bash 复制代码
docker run -d -p 80:80 nginx

docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456  -d mysql:5.7  
docker run -d  --link mysql:mysql -p 86:80 wordpress:5.6

-d  #放后台运行
-p 端口映射 #例子: -p 宿主机端口:容器端口
--name 指定容器的名字 # docker run -it --name jaden 镜像id或者名称
--link 关联另一个容器 # 了解即可
-e MYSQL_ROOT_PASSWORD #设置容器的一些属性,了解一下即可
-it #是给运行起来的这个容器分配一个终端,就可以进入到容器内部操作了

6.docker-compose

docker-compose是批量管理docker容器的工具

bash 复制代码
#linux 安装
yum install docker-compose -y
# 查看版本
docker-compose -v

配置文件解读,了这个配置文件,就可以通过docker-compose来控制多个容器了

bash 复制代码
# 注意,下面这个文件内容是严格要求格式的,多一个空格都不行,通过缩进来表示等级关系,下面的这种配置语法叫做yaml语法
version: '3'  # docker-compose.yml的文件格式版本
services:
   db:  #容器名称
     image: mysql:5.7
     restart: always  # 开机自启动的意思
     environment:
       MYSQL_ROOT_PASSWORD: 123456
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: 123456  # 和下面的WORDPRESS_DB_PASSWORD值要对应上
   wordpress:
     depends_on:
       - db
     image: wordpress:5.6  
     ports:
       - "83:80"  # 端口映射
     restart: always
     environment:
       WORDPRESS_DB_HOST: db
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: 123456

可以将 代码放入xxx.yml 文件中使用指令即可根据文件创建并运行容器。

bash 复制代码
#创建并启动
docker-compose up -d # 启动之后就可以通过浏览器访问了
#停止并删除
docker-compose down
#重启
docker-compose restart
#停止
docker-compose stop
#启动
docker-compose start

使用命令时要进入 配置文件所在的目录下执行


小白一枚,不足之处请多多指教

借鉴文章:

https://blog.csdn.net/q610376681/article/details/90483576

docker入门,这一篇就够了。-CSDN博客

相关推荐
程序员阿明9 分钟前
docker搭建视频流服务go2rtc,webRTC
docker·容器·webrtc
TTATTC1 小时前
让 16 个 AI 员工在飞书群自我协同:基于 OpenClaw 的多 Agent 敏捷 Squad 拓扑与一人公司实操
docker·开源
TTATTC1 小时前
从分片续传到 SPI 插件化扩展:Free-FS 企业级文件系统核心架构与万能预览技术拆解
docker·开源
JavaPub-rodert2 小时前
Docker 容器为什么 stop 半天停不下来?讲透 PID 1、SIGTERM、SIGKILL、僵尸进程与 tini
运维·docker·容器
EterNity_TiMe_6 小时前
Docker服务越装越多记不住端口?我用Fenrus把NAS里的常用入口整理成一个导航页
运维·人工智能·docker·ai·容器·cpolar
吴声子夜歌6 小时前
Docker入门与实战——libnetwork插件化网络功能
网络·docker·容器
江湖有缘7 小时前
Docker实战 | 使用Docker部署HarborGuard容器安全扫描平台
安全·docker·容器
江湖有缘7 小时前
Docker实战 | 使用Docker部署Reubah文件转换器和图像处理器
docker·容器·eureka
七夜zippoe8 小时前
把 OpenClaw Agent 搬进 K8s:容器化部署全记录
ai·云原生·容器·kubernetes·openclaw
骑着蜗牛撵大象3278 小时前
ToolJet + PostgreSQL:后台表格、查询和流程,一次搭成可远程访问的业务系统
数据库·低代码·docker·postgresql·内部工具·tooljet