Docker 常用命令

米饭7个月前行业资讯473

 一、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 基础与实战指南(2)

Docker 基础与实战指南(2)

二、Docker 基础接下来,我们一起来学习 Docker 使用的一些基础知识,为将来部署项目打下基础。具体用法可以参考 Docker 官方文档:https://docs.docker.com/2.1...

Docker容器——网络模式和Cgroup资源限制

Docker容器——网络模式和Cgroup资源限制

一、Docker网络(1)Docker网络实现原理Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0),Docker启动一个容器时会根据Docker网桥的网段分配给容...

Linux 安装Docker完整教程(六)

Linux 安装Docker完整教程(六)

背景近些年随着云原生的发展,Docker在云原生中的作用使得它也蓬勃发展起来。今天这篇文章就带大家一起实现一下在Linux操作系统下Docker的部署过程,收藏起来,以备不时之需。当然,如果对Dock...

windows10家庭版禁用Device/Credential Guard解决方案

windows10家庭版禁用Device/Credential Guard解决方案

背景(禁用的原因)在安装Windows版的docker后,由于Windows版本自带虚拟机,折腾完后却发现原来安装的VMware Workstation Pro和Oracle VM VirtualBo...

玩转大数据16:大数据存储与文件格式优化

玩转大数据16:大数据存储与文件格式优化

随着大数据时代的到来,存储和处理海量数据成为了一个重要的挑战。在大数据存储中,选择合适的文件格式对数据的压缩率、读写性能和扩展性起着关键作用。本文将介绍大数据存储的挑战,探讨常见的文件格式,并深入讨论...

走进docker的世界之入门篇

走进docker的世界之入门篇

什么是dockerDocker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚...

发表评论    

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