Docker基本教程

简介: 这篇文章是关于Docker的入门教程,介绍了Docker的基本命令和操作,包括镜像搜索、拉取、列出、删除,容器的运行、进入、退出、查看状态、停止、重启和删除,以及权限问题的解决方法。

一、docker的介绍

本文章内容节选、删改、添加自Docker教程|菜鸟教程

二、docker基本命令

一、镜像

①寻找想要的镜像

可以在Docker hub直接寻找
也可以直接使用命令search寻找

docker search 镜像相关词
docker search ubuntu22.04

②拉取镜像

从docker hub拉取镜像

docker pull 镜像名

③列出本地存在的镜像

查看本地已经存在的镜像

docker images

④删除镜像

当需要删除镜像时,可以使用

docker rmi 镜像名

二、容器

①运行容器

基本运行
docker run 镜像名 命令
docker run ubuntu:15.10 /bin/echo "Hello world"
交互运行

相当于打开终端,允许io输入输出
-i: 允许你对容器内的标准输入 (STDIN) 进行交互。
–interactive Keep STDIN open even if not attached
-t: 在新容器内指定一个伪终端或终端。
–tty Allocate a pseudo-TTY
相关资料:Linux tty
/bin/bash为命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash
相关资料:bash

docker run -it ubuntu:15.10 /bin/bash

在容器的终端中使用“查看系统版本”

cat /proc/version
后台运行

创建以进程方式运行的容器
-d 在后台分离运行容器并打印容器 ID
–detach Run container in background and print container ID

docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
为容器取名并运行

结合了-i -t -d并取名的后台运行方法

docker run -itd --name 容器名称 所用镜像名
将外设添加到docker容器

添加–privileged=true

docker run -itd --privileged=true --name biaoding luxonis/depthai-ros:noetic-kalibr-imu-main

②进入、退出容器的终端

进入容器的终端

法1

docker attach 1e560fca3906

法2(推荐)

docker exec -it 243c32535da7 /bin/bash
退出容器的终端

若使用docker attach进入容器的终端,则在容器终端内的exit会导致容器的停止
若使用docker exec进入容器的终端,在该情况下的容器终端内使用exit不会导致容器停止

exit

③查看正在运行的容器及状态

查看正在运行的容器

若添加-a 则会包含所有容器(包括曾经退出的容器)

docker ps
查看容器内的标准输出
docker logs 容器id
docker logs 2b1b7a428627

④停止/重启容器

停止容器
docker stop 容器id
重启容器
docker restart 容器id

⑤删除、清理容器

删除容器

-f, --force Force the removal of a running container (uses SIGKILL)

docker rm -f 容器名
docker rm -f 1e560fca3906
清理所有已终止的容器

(似乎并不能清理很多空间出来)

docker container prune

三、其他

①查看docker中某指令用法

docker 指令 --help
docker run --help

②permission denied的解决

docker进程使用Unix Socket而不是TCP端口。而默认情况下,Unix socket属于root用户,需要root权限才能访问。

法1:sudo法

使用sudo获取管理员权限,运行docker命令

法2:用户组法

docker守护进程启动的时候,会默认赋予名字为docker的用户组读写Unix socket的权限,因此只要创建docker用户组,并将当前用户加入到docker用户组中,那么当前用户就有权限访问Unix socket了,进而也就可以执行docker相关命令

sudo groupadd docker     #添加docker用户组
sudo gpasswd -a $USER docker     #将登陆用户加入到docker用户组中
newgrp docker     #更新用户组
docker ps    #测试docker命令是否可以使用sudo正常使用

③相关资料链接

Docker Hub: 官方Hub
Docker 官方主页: 官方主页
Docker 国内镜像:阿里云加速
Docker第三方教程:菜鸟教程

目录
相关文章
kde
|
2月前
|
文件存储 数据安全/隐私保护 开发者
群晖NAS Docker镜像源加速配置教程
本教程介绍了群晖NAS用户如何通过配置轩辕镜像加速服务提升Docker镜像拉取速度。内容包括配置前准备、详细设置步骤及日常使用说明,帮助用户快速完成配置并享受高效稳定的镜像下载体验。
kde
1369 59
|
2月前
|
NoSQL Redis Docker
使用Docker Compose工具进行容器编排的教程
以上就是使用Docker Compose进行容器编排的基础操作。这能帮你更有效地在本地或者在服务器上部署和管理多容器应用。
288 11
|
3月前
|
消息中间件 监控 Docker
Docker环境下快速部署RabbitMQ教程。
就这样,你成功地用魔法召唤出了RabbitMQ,还把它和你的应用程序连接了起来。现在,消息会像小溪流水一样,在你的系统中自由流淌。别忘了,兔子们不喜欢孤独,他们需要你细心的关怀,不时地监控它们,确保他们的世界运转得井井有条。
221 18
|
3月前
|
消息中间件 监控 Docker
Docker环境下快速部署RabbitMQ教程。
至此,这次神秘而简明的部署之旅告一段落。祝你在利用RabbitMQ打造消息队列时,一切顺风顺水!
186 8
|
11月前
|
机器人 网络安全 数据安全/隐私保护
autMan奥特曼机器人-对接Docker版本NTQQ详细教程
本文介绍了如何在服务器上搭建NTQQ机器人,通过官方NTQQ对接各框架,实现QQ登录的稳定运行。文章提到了需要准备一台服务器和相应的软件,并详细描述了通过SSH链接服务器、创建文件夹和配置文件、编辑配置文件地址端口、运行容器等步骤。同时,文章还介绍了VNC连接的使用和配置,以及使用watchtower进行NTQQ的更新。文章总结起来就是在服务器上搭建NTQQ机器人,实现QQ登录的稳定性和自动登录功能,同时提供了更新和维护的方法。
797 3
autMan奥特曼机器人-对接Docker版本NTQQ详细教程
|
6月前
|
监控 关系型数据库 MySQL
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
358 30
|
8月前
|
弹性计算 Ubuntu Linux
阿里云服务器一键安装Docker社区版教程,基于系统运维管理OOS
阿里云服务器一键安装Docker社区版教程,基于系统运维管理OOS自动化部署。支持Ubuntu 22.04/20.04、CentOS 7.7-7.9及Alibaba Cloud Linux 3.2104 LTS。前提条件:ECS实例需运行中且有公网。步骤:选择Docker扩展并安装,验证成功通过命令`docker -v`查看版本号。
617 79
|
7月前
|
监控 Linux PHP
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
181 20
|
10月前
|
缓存 Linux Docker
【最新版正确姿势】Docker安装教程(简单几步即可完成)
之前的老版本Docker安装教程已经发生了变化,本文分享了Docker最新版安装教程,其他操作系统版本也可以参考官 方的其他安装版本文档。
9991 3
【最新版正确姿势】Docker安装教程(简单几步即可完成)