Docker 常用命令

米饭3周前行业资讯42

 一、Docker 基础命令

1、启动 docker

systemctl start docker


2、关闭 docker

systemctl stop docker


3、重启 docker

systemctl restart docker


4、设置开机启动 docker

systemctl enable docker


5、查看 docker 运行状态

systemctl status docker


6、查看 docker 版本信息

docker version


7、查看 docker 系统、镜像、容器数等信息

docker info


8 docker 帮助命令

如果忘记了某些命令,可以输入如下命令:

docker --help


如果忘记特定命令用法,如拉取命令,则可以输入如下指令:

docker pull --help



二、Docker 镜像命令

1、查看服务器中 docker 镜像列表

docker images

docker image ls



2、查看镜像、容器、数据卷所占用的空间:

docker system df



3、搜索镜像

docker search [镜像名]


如可以输入这样的命令:docker search mysql



4、拉取镜像(从 Docker 镜像仓库拉取镜像)

不加 tag版本号,默认拉取 docker 仓库中该镜像的最新版本,相当于命令 docker pull [镜像名]:latest

docker pull [镜像名]

docker pull [镜像名]:tag


如 拉取最新版的 mysql:

docker pull mysql


加 tag,拉取指定版本。比如说拉取 mysql 指定版本:

docker pull mysql:5.7.30


5、运行镜像

docker run [镜像名]


docker run [镜像名]:tag


如运行Tomcat:

docker run tomcat


用 Ctrl+c 退出。


下面用实例解释:几个参数:

# -it:这是两个参数,一个是 -i:交互式操作,一个是 -t 终端。

# 这里打算进入 bash 执行一些命令并查看返回结果,因此需要交互式终端。


# --rm:这个参数的意思是,容器退出后随之将其删除。默认情况下,除了排障需求,退出的容器并不会立即删除,除非手动 docker rm。

# 这里只是随便执行个命令,看看结果,不需要排障和保留结果,因此使用 --rm 可以避免浪费空间。



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

docker run -it --rm ubuntu:18.04 bash



6、删除镜像

当前镜像没有被任何容器使用才可以删除。

docker rmi -f 镜像名/镜像ID


删除多个镜像:多个镜像ID或镜像之间用空格隔开

docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID


删除全部镜像:-a 为显示全部,-q 为只显示ID

docker rmi -f $(docker images -aq)


删除所有仓库名为 MySQL 的镜像

docker image rm $(docker image ls -q MySQL)


用before删除所有在某版本之前的镜像,如删除6.2版本之前的MySQL镜像

docker image rm $(docker image ls -q -f before=MySQL:6.2)


强制删除镜像:

docker image rm 镜像名/镜像ID



7、保存镜像

将我们的镜像保存为 tar 压缩文件,方便镜像转移和保存,可以在任何一台安装了 docker 的服务器上加载这个镜像。

docker save 镜像名/镜像ID -o 镜像要保存的位置和名字


如:docker save tomcat -o /myTomcatimg.tar


8、加载镜像

任何装 docker 的地方加载镜像保存文件,使其恢复为一个镜像。

docker load -i 镜像保存文件位置



三、Docker 容器命令


1、查看正在运行的容器列表

docker ps

# 或

docker container ls


2、查看所有容器

所有正在运行的和停止运行的。

docker ps -a


3、运行容器

# -it:表示与容器进行交互式启动

# -d:表示可后台运行容器(守护式运行)

# --name:要给运行的容器起的名字

# /bin/bash:交互路径

docker run -it -d --name 要取的别名 镜像名:tag /bin/bash



如:要启动一个 MySQL ,把它的别名取为 Mysql001,并交互运行,命令如下(这里指定版本号为 6.4):


# 3.1、拉取 redis 镜像

docker pull mysql


# 3.2、命令启动

docker run -it -d --name mysql001 mysql:6.4 /bin/bash


# 3.3、查看已运行容器

docker ps


# 3.4、停止容器

docker stop 容器名/容器ID

如:停止前面运行的mysql 容器,命令:docker stop mysql001:


4、删除容器

可以添加 -f 参数,Docker 会发送 SIGKILL 信号给容器。

删除一个容器

docker rm -f 容器名/容器ID


删除多个容器:多个容器名/容器ID 用空格隔空

docker rm -f 容器名/容器ID 容器名/容器ID 容器名/容器ID


删除全部容器

docker rm -f $(docker ps -aq)


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

docker container prune



5、容器端口与服务器端口映射

-p 宿主机端口:容器端口


例如:使用mysql镜像,可以3306 端口映射到服务器的 3307端口,如果成功的话,那么访问服务器的 3307 端口,就会访问到 docker 中的容器 mysql。命令:


docker run -itd --name mysql001 -p 3307:3306 mysql:6.4 /bin/bash


-p 3307:3306 解析:将容器内部的 3306 端口与 docker 宿主机(docker 安装在哪台服务器,哪台服务器就是宿主机)3307 端口进行映射,那通过外部访问宿主机 3307 端口,即可访问到 docker 容器 3306 端口了。


6、进入容器

当 -i -t 参数一起使用时,可以熟悉的 Linux 命令提示符。

docker exec -it 容器名/容器ID /bin/bash

如进入前面的 mysql001 容器,就可以输入命令 docker exec -it mysql001 /bin/bash。


7、从容器退出到服务器

直接退出

exit



8、启动容器

docker start 容器名/容器ID


9、重启容器

docker restart 容器名/容器ID


10、杀死 kill 容器

docker kill 容器名/容器ID


11、容器文件拷贝

无论容器是否开启都可以进行拷贝。

docker cp 容器ID/名称:文件路径 要拷贝到外部的路径 | 要拷贝到外部的路径 容器ID/名称:文件路径


从容器内拷出

docker cp 容器ID/名称:容器内路径 容器外路径


从外部拷贝文件到容器内

docker cp 容器外路径 容器ID/名称:容器内路径


12、查看容器日志

docker logs -f --tail=要查看末尾多少行 默认all 容器ID


13、设置开机自动启动容器

启动容器时,使用 docker run 命令时,添加参数 --restart=always 便表示该容器随 docker 服务启动而自动启动。

docker run -itd --name mysql -p 3307:3306 --restart=always  mysql:6.4 /bin/bash



14、挂载

数据挂载:简单来讲,就是将容器内的数据与外部宿主机文件绑定起来,类似一个双持久化,当容器删除时,宿主机文件数据目录仍在,下次启动容器只要将数据目录指向宿主机数据所在位置即可恢复。

-v 宿主机文件存储位置:容器内文件位置


-v 命令可以多次使用,即一个容器可以同时挂载多个文件。


-v 宿主机文件存储位置:容器内文件位置 -v 宿主机文件存储位置:容器内文件位置 -v 宿主机文件存储位置:容器内文件位置


如:运行 docker mysql 容器 进行 端口映射 两个数据卷挂载 设置开机自启动

docker run -d -p 3307:3306 --name mysql001 --restart=always  -v /var/lib/mysql/data/:/data -v /var/lib/mysql/conf/:/usr/local/etc/mysql/mysql.conf  mysql:6.4 --requirepass "password"


15、更换容器名

docker rename 容器ID/容器名 新容器名


16、导出和导入

16.1导出容器,将导出容器快照到本地文件

如果要导出本地某个容器,使用 docker export 命令。

docker container ls -a

docker export ddfc038b5dc2 > ubuntu.tar



16.2导入容器快照

可以使用 docker import 从容器快照文件中再导入为镜像。

cat ubuntu.tar | docker import - test/ubuntu:v1.0

docker image ls


16.3通过指定 URL 或者某个目录来导入,例如

docker import http://example.com/exampleimage.tgz example/imagerepo


前面使用过 docker load 来导入镜像存储文件到本地镜像库,同样也可以使用 docker import 来导入一个容器快照到本地镜像库;但是两者有区别。



17、在容器和主机之间复制文件/文件夹

从容器里面拷文件到宿主机

docker cp 容器名:要拷贝的文件在容器里面的路径   要拷贝到宿主机的相应路径

docker cp mysql:/opt/cdc.txt /home/


从宿主机拷文件到容器里面

docker cp 要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径;如果拷贝的内容有重复,会直接覆盖,不会询问。

docker cp /home/ccc.txt mysql:/opt/


原文链接:https://blog.csdn.net/guanrongl/article/details/135074403

本文系转载,版权归原作者所有,如若侵权请联系我们进行删除!  

云掣基于多年在运维领域的丰富时间经验,编写了《云运维服务白皮书》,欢迎大家互相交流学习:

《云运维服务白皮书》下载地址:https://fs80.cn/v2kbbq

想了解更多大数据运维托管服务、数据库运维托管服务、应用系统运维托管服务的的客户,欢迎点击云掣官网沟通咨询:https://yunche.pro/?t=shequ


相关文章

【Docker 】深入探索 Docker :容器健康检查与安全扫描

【Docker 】深入探索 Docker :容器健康检查与安全扫描

在现代容器化应用的开发与部署过程中,确保服务的可用性和安全性至关重要。本文将探讨容器的健康检查和安全扫描,并分享最佳实践。一、容器健康检查1.1 健康检查的作用健康检查是确保服务在运行时处于可用状态的...

Docker:容器化和虚拟化

Docker:容器化和虚拟化

虚拟化虚拟化是一种资源管理技术,它将计算机的各种实体资源(如CPU、内存、磁盘空间、网络适配器等)予以抽象、转换后呈现出来,并可供分割、组合为一个或多个电脑配置环境。这些资源的新虚拟部分是不受现有资源...

MySQL 数据出海之数据同步方案

MySQL 数据出海之数据同步方案

数据库出海流程【1】业务出海:1)数据库出海;2)应用出海;3)流量分发;【2】数据库出海:涉及业务方、信安、DBA和框架组。数据库出海,流量在国内 --> 应用出海,流量在国内 -->...

Docker: ubuntu系统下Docker的安装

Docker: ubuntu系统下Docker的安装

安装依赖操作系统版本Ubuntu Kinetic 22.10Ubuntu Jammy 24.04 (LTS)Ubuntu Jammy 22.04 (LTS)Ubuntu Focal 20.04 (LT...

网络】DNS协议、ICMP协议

网络】DNS协议、ICMP协议

1.DNS协议DNS(Domain Name System,域名系统)协议,是一个用来将域名转化为IP地址的应用层协议。1.1DNS背景TCP/IP中通过IP地址和端口号的方式,来确定网络中一个主机上...

Docker全攻略:从入门到精通,掌握容器构建关键技能

Docker全攻略:从入门到精通,掌握容器构建关键技能

引言        Dockerfile 是构建 Docker 镜像的核心文件。它定义了如何将应用程序及其依赖打包成一个可以跨平台运行的容器。本篇博客将从基础概...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。