2024年Docker常用操作快速查询手册

server/2024/9/24 5:23:33/

目录

一、Linux系统上 Docker安装流程(以ubuntu为例)

一、卸载所有冲突的软件包

二、设置Docker的apt存储库(这里使用的是阿里云软件源)

三、直接安装最新版本的Docker

三、安装指定版本的Docker

四、验证Docker是否安装成功

二、Docker命令解释

三、Docker常用命令

docker-toc" style="margin-left:40px;">一、启动docker

docker-toc" style="margin-left:40px;">二、关闭docker

docker-toc" style="margin-left:40px;">三、重启docker

四、跟随系统自动启动

docker%E8%BF%90%E8%A1%8C%E7%8A%B6%E6%80%81-toc" style="margin-left:40px;">五、查询docker运行状态

六、下载镜像命令(下载,但是不运行)

七、创建镜像容器并运行(后面可以携带常用参数如 -d -p)

八、进入镜像容器内部

九、退出容器内部(运行时候未加-d容器会被关闭)

十、启动容器

十一、停止容器

十二、重启容器

十三、查看宿主机内全部镜像

十四、删除镜像(被删除的镜像不能在任何容器内运行)

十五、强制删除镜像

十六、保存镜像

十七、从压缩包中加载镜像

十八、查看正在运行的容器

十九、查看所有的容器

四、数据卷挂载和本地挂载

一、数据卷挂载(必须在创建容器的时候进行挂载)

二、本地挂载(必须在创建容器的时候进行挂载)

java%E9%A1%B9%E7%9B%AE%E9%95%9C%E5%83%8F-toc" style="margin-left:0px;">五、构建java项目镜像

docker%E8%87%AA%E5%AE%9A%E4%B9%89%E7%BD%91%E7%BB%9C-toc" style="margin-left:0px;">六、docker自定义网络

1、创建自定义网络

2、将容器加入该网络

作者介绍

尾言


一、Linux系统上 Docker安装流程(以ubuntu为例)

其它操作系统,请前往docker官网查看

Install Docker Engine on Ubuntu | Docker Docs

一、卸载所有冲突的软件包

for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

二、设置Docker的apt存储库(这里使用的是阿里云软件源)

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL http://mirrors.aliyun.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
# 设置为阿里云的软件源
sudo chmod a+r /etc/apt/keyrings/docker.asc# Add the repository to Apt sources:
echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

三、直接安装最新版本的Docker

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

三、安装指定版本的Docker

1、先查询可用版本

apt-cache madison docker-ce | awk '{ print $3 }'

2、选择指定的Docker版本进行安装

VERSION_STRING=5:26.1.0-1~ubuntu.24.04~noble
sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin

四、验证Docker是否安装成功

sudo docker run hello-world

二、Docker命令解释

docker run -d \--name mysql \-p 3307:3306 \-e TZ=Asia/Shanghai \-e MYSQL_ROOT_PASSWORD=123456 \mysql:8.0

docker run

这行命令的意思是创建并运行一个容器

-d

这个参数的意思是,让容器在后台运行

-p [宿主机端口]:[容器内要需要被映射的端口]

所以-p 3307:3306的意思就是将宿主机的3307端口映射到mysql容器内的3306端口,这样就可以通过从外部访问宿主机的3307端口从而间接访问容器内的3306端口

-e 这个是配置环境变量参数,具体要配置什么,得看该容器在Docker hub中的具体说明

mysql:8.0

mysql是镜像名,就是你要从仓库下载的镜像,8.0是该镜像的版本。如果省略:8.0则默认安装最新版本

三、Docker常用命令

docker">一、启动docker

systemctl start docker

docker">二、关闭docker

systemctl stop docker

docker">三、重启docker

systemctl restart docker

四、跟随系统自动启动

systemctl enable docker

docker%E8%BF%90%E8%A1%8C%E7%8A%B6%E6%80%81">五、查询docker运行状态

systemctl status docker

六、下载镜像命令(下载,但是不运行)

docker pull 镜像名:版本号

七、创建镜像容器并运行(后面可以携带常用参数如 -d -p)

docker run 镜像名

八、进入镜像容器内部

docker exec -it 镜像容器名 bash

九、退出容器内部(运行时候未加-d容器会被关闭)

exit

十、启动容器

docker start 容器

十一、停止容器

docker stop 容器

十二、重启容器

docker restart 容器

十三、查看宿主机内全部镜像

docker images

十四、删除镜像(被删除的镜像不能在任何容器内运行)

docker rmi -f 镜像名

十五、强制删除镜像

docker image rm 镜像名

十六、保存镜像

docker save 镜像名 -o 保存路径
#例如 docker save mysql -o /root/mysql.tar

十七、从压缩包中加载镜像

docker load -i 镜像压缩包路径

十八、查看正在运行的容器

docker ps

十九、查看所有的容器

docker ps -a

四、数据卷挂载和本地挂载

一、数据卷挂载(必须在创建容器的时候进行挂载)

docker run -v 数据卷名字:容器内要被挂载的目录
# 例如 docker run -v conf:/usr/share/nginx/html

然后容器内的html目录就会被挂载在宿主机的/var/lib/docker/volumes/conf/_data

二、本地挂载(必须在创建容器的时候进行挂载)

docker run -v 本地绝对路径目录:容器内需要被挂载的路径
# 必须是绝对路径不能是相对路径,否则会认为是数据卷挂载

java%E9%A1%B9%E7%9B%AE%E9%95%9C%E5%83%8F">五、构建java项目镜像

1、新建一个名字未dockerfile的文件,没有文件格式后缀

2、编写dockerfile文件里的配置

FROM openjdk:11.0-jre-buster
#JDK基础镜像需要提前下载
COPY java-demo.jar /app.jar
#只用将java-demo.jar这个jar包的路径改为你自己的
ENTRYPOINT["java","-jar","/app.jar"]
#入口

3、执行构建指令

docker build -t 你起的镜像名:版本号 dockerfile文件所在目录

docker%E8%87%AA%E5%AE%9A%E4%B9%89%E7%BD%91%E7%BB%9C">六、docker自定义网络

1、创建自定义网络

cocker network create 自定义网络名

2、将容器加入该网络

docker network connect 自定义网络名 容器

然后就可以通过自定义网络名去替代容器的IP地址,并且在同一个网络的容器们都可以互相访问。

 作者介绍

作者本人是一名人工智能炼丹师,目前在实验室主要研究的方向为生成式模型,对其它方向也略有了解,希望能够在CSDN这个平台上与同样爱好人工智能的小伙伴交流分享,一起进步。谢谢大家鸭~~~

 如果你觉得这篇文章对您有帮助,麻烦点赞、收藏或者评论一下,这是对作者工作的肯定和鼓励。  

尾言

 如果您觉得这篇文章对您有帮忙,请点赞、收藏。您的点赞是对作者工作的肯定和鼓励,这对作者来说真的非常重要。如果您对文章内容有任何疑惑和建议,欢迎在评论区里面进行评论,我将第一时间进行回复。 


http://www.ppmy.cn/server/32315.html

相关文章

Spring中的StreamUtils:流式处理利器

1. 概述 StreamUtils是Spring框架提供的一个工具类,它专注于简化对输入流(InputStream)和输出流(OutputStream)的操作。在Java编程中,流的处理经常涉及到缓冲、读取、写入等操作,StreamUtils封…

【stomp 实战】Spring websocket 用户订阅和会话的管理源码分析

通过Spring websocket 用户校验和业务会话绑定我们学会了如何将业务会话绑定到spring websocket会话上。通过这一节,我们来分析一下会话和订阅的实现 用户会话的数据结构 SessionInfo 用户会话 用户会话定义如下: private static final class Sessio…

Python数据分析实验二:Python数据预处理

目录 一、实验目的与要求二、实验任务三、主要程序清单和运行结果(一)对chipotle.csv文件的销售数据进行分析(二)对描述泰坦尼克号成员的信息进行可视化和相关分析 四、实验体会 一、实验目的与要求 1、目的:   掌握…

MySQL45讲(一)(42)

该节是有关于数据库权限的文章 grant all privileges on *.* to ua% with grant option; 给与用户ua%最高的权限 revoke all privileges on *.* from ua%; 回收所有权限 注意一点,已经存在的连接是不会有全部权限的的,因为在创建连接的时候&#xff0…

AcWing 850. Dijkstra求最短路 II

Problem: AcWing 850. Dijkstra求最短路 II 文章目录 思路解题方法复杂度Code 思路 这是一个经典的 Dijkstra 算法问题,我们需要找到从点 1 到点 n 的最短路径。Dijkstra 算法是一种贪心算法,它总是选择当前未访问过的节点中距离最短的一个,然…

计算机——磁盘

磁盘介绍 磁盘(Disk)是计算机存储设备的一种,用于持久存储和读取数据。它以圆盘状的物理结构为基础,通过磁性材料在盘片上制造磁道和磁点,利用磁头来读写数据。 磁盘分类 磁盘的常见类型包括硬盘驱动器(…

vivado Aurora 8B/10B IP核(12)- Setp By Step搭建FPGA工程

Step1:任意创建一个新的空的工程(创建工程的具体工程如果还不清楚的看我们教程第一季部分), 并且进入IP CORE列表 右击Customize ip Step2:配置 IP CORE-Core options Step3:配置 IP CORE-GT Selections Step4:配置 IP CORE-Shared Logic 为 …

极简shell制作

🌎自定义简单shell制作 (ps: 文末有完整代码) 文章目录: 自定义简单shell制作 简单配置Linux文件 自定义Shell编写 命令行解释器       获取输入的命令       字符串分割       子进程进行进程替换 内建命令…