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

Docker的简单使用

安装Ubuntu Linux

安装 Ubuntu 18.04+ 的步骤,参见 官方安装指南。
完成安装后更新相关软件:

sudo apt-get update
sudo apt-get upgrade

安装 Docker Engine

安装 Docker 引擎,您可以根据官方文档进行安装:

  • 参见 Install Docker Engine on Ubuntu。
  • 您还可以者通过 Docker 提供的安装脚本直接安装:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

启动Docker

sudo systemctl start docker

Docker安装完毕后,我们首先启动守护程序。

检查 Docker 是否正在运行:

systemctl status docker

未启动的话先启动docker:

systemctl start docker

设置开机自启动:

systemctl enable docker

帮助命令

docker version # 显示docker的版本信息
docker info # 显示docker的系统信息,包括镜像和容器的数量
docker 命令 --help # 帮助命令

文档地址: https://docs.docker.com/engine/reference/commandline/docker/

镜像使用

拉取镜像

docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]

example:

docker pull osrf/ros:humble-desktop-full

列出镜像

docker images


各个选项说明:
REPOSITORY:表示镜像的仓库源
TAG:镜像的标签
IMAGE ID:镜像ID
CREATED:镜像创建时间
SIZE:镜像大小

查找镜像

docker search

删除本地镜像

docker rmi [选项] <镜像1> [<镜像2> ...]
docker image rm [选项] <镜像1> [<镜像2> ...]

容器使用

启动容器

从docker镜像启动一个容器的语法如下

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
option作用
-i交互式操作
-t终端
-d守护进程,后台运行该容器
-v目录映射,格式:宿主机目录:容器目录
-p指定端口映射,格式:主机(宿主)端口:容器端口
-P随机端口映射,容器内部端口随机映射到主机的端口
–name docker-name容器名字docker-name
-m, --memory bytes设置容器使用内存最大值
-h, --hostname string指定容器的 hostname
–dns 8.8.8.8指定容器 dns 服务器8.8.8.8
-e JAVA_HOME=“路径”设置环境变量,如JAVA_HOME
–rm容器退出时,删除容器及容器目录

example:

docker run -it -v ~/workspace:/home/sunwenqi/workspace osrf/ros:humble-desktop-full /bin/bash

/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash

退出容器

exit

查看运行中running状态的容器

docker ps

查看所有状态的容器(包含running、paused、stopped)

docker ps -a

启动已停止运行的容器

查看所有容器:

docker ps -a

使用 docker start 启动一个已停止的容器:

docker start <容器名/容器ID>

example:

docker start b7d2a542578a

停止一个容器

停止容器的命令如下:

docker stop <容器名/容器ID>

停止的容器可以通过 docker restart 重启:

docker restart <容器名/容器ID>

进入容器

在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:

docker attach <容器名/容器ID>
docker exec <容器名/容器ID>

推荐使用 docker exec 命令,因为此命令会退出容器终端,但不会导致容器的停止
example:
attach 命令

docker attach b7d2a542578a

exec 命令

docker exec -it b7d2a542578a /bin/bash

删除容器

docker rm <容器ID>

清理掉所有处于终止状态的容器

docker container prune

从容器内拷贝文件到主机上

docker cp 容器id:容器内路径 目的地主机路径

Dockerfile

Dockerfile是用来构建Docker镜像的文件,可以理解为命令参数脚本
##规则
每个指令都必须是大写字母。
按照从上到下顺序执行。
# 表示注释。
每一条指令都会创建一个新的镜像层。
##解释
FROM:基础镜像,比如 centos。
MAINTAINER:镜像是谁写的。建议以此格式:姓名<邮箱>。
RUN:镜像构建时需要运行的命令。
ADD:添加,比如添加一个 tomcat 压缩包。
WORKDIR:镜像的工作目录。
VOLUME:挂载的目录。
EXPOSE:指定暴露端口,跟 -p 一个道理。
RUN:最终要运行的。
CMD:指定这个容器启动的时候要运行的命令,只有最后一个会生效,而且可被替代。
ENTRYPOINT:指定这个容器启动的时候要运行的命令,可以追加命令。
ONBUILD:当构建一个被继承Dockerfile 这个时候运行ONBUILD指定,触发指令。
COPY:将文件拷贝到镜像中。
ENV:构建的时候设置环境变量。

http://www.xdnf.cn/news/1190737.html

相关文章:

  • 【C++】定义常量
  • 图片查重从设计到实现(5)Milvus可视化工具
  • 嵌入式硬件篇---zigbee无线串口通信问题
  • Python - 100天从新手到大师 - Day6
  • 【Redis】Linux 配置Redis
  • 从零开始的云计算生活——第三十六天,山雨欲来,Ansible入门
  • [Python 基础课程]注释
  • Flowable 实战落地核心:选型决策与坑点破解
  • uniapp 自定义tab栏切换
  • 全球化2.0 | 云轴科技ZStack亮相阿里云印尼国有企业CXO专家活动
  • 数据结构预备知识
  • JavaWeb01——基础标签及样式(黑马视频笔记)
  • 伟淼科技李志伟:破解二代接班传承困局,系统性方案破除三代魔咒
  • mysql查找数据库表中某几个连续的编号中中断的编号
  • 如何实现打印功能
  • Kafka——Java消费者是如何管理TCP连接的?
  • 两个USB-CAN-A收发测试
  • pytorch学习笔记-自定义卷积
  • 在C#中判断两个列表数据是否相同
  • Day04–链表–24. 两两交换链表中的节点,19. 删除链表的倒数第 N 个结点,面试题 02.07. 链表相交,142. 环形链表 II
  • # JsSIP 从入门到实战:构建你的第一个 Web 电话
  • VTK交互——ImageRegion
  • kali [DNS劫持] 实验(详细步骤)
  • python I 本地 html 文件读取方法及编码报错问题详解
  • Android 蓝牙学习
  • 在python3.8和pytorch1.8.1的基础上安装tensorflow
  • 对比JS“上下文”与“作用域”
  • kafka中生产者的数据分发策略
  • RabbitMQ面试精讲 Day 5:Virtual Host与权限控制
  • GMP模型