当前位置: 首页 > news >正文

【docker】安装docker环境并启动容器

一、安装docker

这里以centos系统为例安装docker环境

# 删除已有安装包
sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-enginesudo yum install -y yum-utils
# 设置源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装指定版本
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 开机启动
systemctl enable docker
# 启动
sudo systemctl start docker

安装完成后,执行命令docker version查看版本

[root@localhost ~]# docker version
Client: Docker Engine - CommunityVersion:           24.0.7API version:       1.43Go version:        go1.20.10Git commit:        afdd53bBuilt:             Thu Oct 26 09:11:35 2023OS/Arch:           linux/amd64Context:           defaultServer: Docker Engine - CommunityEngine:Version:          24.0.7API version:      1.43 (minimum version 1.12)Go version:       go1.20.10Git commit:       311b9ffBuilt:            Thu Oct 26 09:10:36 2023OS/Arch:          linux/amd64Experimental:     falsecontainerd:Version:          1.6.26GitCommit:        3dd1e886e55dd695541fdcd67420c2888645a495runc:Version:          1.1.10GitCommit:        v1.1.10-0-g18a0cb0docker-init:Version:          0.19.0GitCommit:        de40ad0
[root@localhost ~]# 

安装docker-compose

## 安装最新版本docker-compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
## 加上许可权限
sudo chmod +x /usr/local/bin/docker-compose
## 查看是否已成功安装
docker-compose --version## docker-compose是一个文件,如果要卸载只需要把文件删除即可
rm /usr/local/bin/docker-compose

上面地址github.com有时候可能连不上(需要梯子),也可以从我的网盘下载,然后放在服务器上面。

网盘地址:

版本:v2.23.3
链接:https://pan.baidu.com/s/19i48r4qloOYSTh35J1XZJA 
提取码:s8ta
## 把文件传到目录 /usr/local/bin/docker-compose
## 加上许可权限
sudo chmod +x /usr/local/bin/docker-compose
## 查看是否已成功安装
docker-compose --version

二、使用已有镜像启动一个容器

下面以Nginx为例创建一个容器,步骤如下:

  1. 拉取Nginx镜像:首先,使用以下命令从Docker Hub上拉取Nginx镜像:

    docker pull nginx
    

    可以先使用docker search查询需要的镜像

  2. 运行Nginx容器:使用以下命令创建并运行一个Nginx容器:

    docker run -d -p 80:80 --name my-nginx nginx
    
    • -d:以后台模式运行容器。
    • -p 80:80:将主机的80端口映射到容器的80端口,这样可以通过主机的IP访问Nginx服务。
    • --name my-nginx:为容器指定一个名称,这里为my-nginx
  3. 访问Nginx服务:现在,您可以通过浏览器或命令行工具访问Nginx服务。如果您在本地运行Docker,可以在浏览器中输入http://localhost来访问Nginx默认页面。如果您在远程服务器上运行Docker,可以使用服务器的IP地址来访问Nginx服务。

  4. 容器启动完成后可以使用docker ps查看容器状态

这样,您就成功创建了一个基于Nginx的容器,并可以通过指定的端口访问Nginx服务。请注意,这只是一个简单的示例,您可以根据需要进行更多的配置和定制化。

这些是创建容器的基本步骤。您可以根据具体需求和场景,使用不同的选项和参数来创建和配置容器。

docker search命令

docker search命令用于在Docker Hub上搜索Docker镜像。以下是对docker search命令的详细解释:

语法:

docker search [OPTIONS] TERM

参数:

  • --filter , -f:根据指定的条件过滤搜索结果。可以使用多个过滤器,用逗号分隔。
  • --format:指定输出结果的格式。
  • --limit:限制返回结果的数量。
  • --no-trunc:不截断输出结果。
  • --stars:根据镜像的星级进行排序。

示例:

docker search ubuntu

这个命令将在Docker Hub上搜索包含关键词"ubuntu"的镜像,并返回相关的搜索结果。搜索结果包括镜像名称、描述、星级等信息。

您还可以使用过滤器来缩小搜索范围,例如:

docker search --filter "is-official=true" ubuntu

这个命令将只返回官方的Ubuntu镜像。

希望对您有所帮助!如果您还有其他问题,请随时提问。

docker run命令

docker run命令用于运行一个新容器,而启动一个容器需要非常多的信息,所以该命令的参数非常多。以下是一些常用的参数:

  1. 命令格式:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  1. 常用选项:
  • -d:在后台运行容器,并返回容器ID。
  • -it:分配一个伪终端(pseudo-TTY)并绑定到容器的标准输入。
  • –name:指定容器名称。
  • -p:将主机端口映射到容器端口。
  • -v:将主机目录或文件挂载到容器中。
  • -e:设置环境变量。
  • –network:指定容器使用的网络模式。
  • –restart:设置容器的重启策略。
  • –rm:在容器退出时自动删除容器。
  • –security-opt:设置容器的安全选项。

此外,还有许多其他的参数可以用来定制容器的运行方式和行为。要获取更多关于Docker run命令的详细信息,可以查看Docker官方文档或使用“docker run --help”命令获取帮助信息。

  1. 示例:
  • 启动一个名为mycontainer的容器,使用nginx镜像,并监听80端口:
docker run -d -p 80:80 --name my-nginx nginx
  • 在容器中运行bash命令:
docker run -it ubuntu bash
  • 启动一个容器并将当前目录挂载到容器的/app目录:
docker run -v $(pwd)/app:/app myimage
  1. 注意事项:
  • 使用docker run命令启动的容器默认会从指定的镜像中运行。如果该镜像不存在本地,Docker会从Docker Hub上下载。
  • 可以通过指定COMMAND和ARG参数来运行其他命令或传递参数给容器。
  • 如果未指定容器名称,Docker会自动生成一个名称。如果需要,可以使用–name选项来指定一个自定义名称。
  • 可以通过-p和-v选项将主机的端口和文件系统映射到容器中,以实现容器的持久化和与主机的交互。
  • 可以使用-it选项在容器中运行交互式命令或进入容器的命令行界面。
http://www.lryc.cn/news/272940.html

相关文章:

  • AIOps探索 | 基于大模型构建高效的运维知识及智能问答平台(2)案例分享
  • 【ESP32接入国产大模型之文心一言】
  • 保湿剂,预计2026年市场规模将达到约230亿美元
  • CodeWhisperer:编码世界中的声音启迪者
  • golang学习专栏
  • el-table表格动态添加列。多组数据拼接和多层级数据的处理
  • ThinkPHP6.0任意文件上传 PHPSESSION 已亲自复现
  • 短说社区运营的使用工具分享(一)
  • 关于.gitignore文件
  • Cell 文章图复现
  • 只需一招彻底解决SOLIDWORKS不显示缩略图预览
  • nccl 源码分析 从 ncclAllReduce 的执行开始认识nccl源代码
  • 仿照AirDrop(隔空投送)优雅地在局域网中传输文件
  • 【PHP】TP5.0及Fastadmin中将查询数据返回对象转为数组
  • 大公司里怎样开发和部署前端代码?
  • API接口:原理、设计与实践
  • 2023年TIOBE指数TOP50的编程语言写“Hello World!”
  • spring、springmvc、springboot、springcloud简介
  • 立仪科技光谱共焦位移传感器:应用领域的广泛性
  • neo4j图数据库安装和测试
  • 爬取豆瓣电影top250的电影名称(完整代码与解释)
  • tidb 集成 flyway 报错 denied to user for table global_variables
  • 很实用的ChatGPT网站—在线编程模块增补篇
  • A股风格因子看板 (2024.01第01期)
  • 基于gamma矫正的照片亮度调整(python和opencv实现)
  • LeetCode-Java(29)
  • 腾讯云导入导出镜像官方文档
  • keras 深度学习框架实现 手写数字识别
  • SELinux策略语法以及示例策略
  • 电路笔记 :自激振荡电路笔记 电弧打火机