栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Docker常用命令详情

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Docker常用命令详情

文章目录
  • Docker 的常用命令
    • 帮助命令
    • Docker 的镜像命令
      • 显示镜像列表
      • 查找镜像
      • 下载镜像
      • 删除镜像
    • Docker 的容器使用
      • 创建CentOs容器
      • 启动容器
      • 查看正在运行的镜像
      • 退出容器
      • 删除容器
      • 启动和停止容器
      • 后台启动容器
      • 查看日志
      • 查看进程信息
      • 查看镜像的元数据
      • 进入当前正在运行的容器
      • 从容器内拷贝文件到主机上

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

​ 官网帮助文档

Docker 的镜像命令

当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载

显示镜像列表

docker images 来列出本地主机上的镜像

[root@shiqi ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED       SIZE
hello-world   latest    feb5d9fea6a5   3 weeks ago   13.3kB
REPOSITORY表示镜像的仓库源
TAG镜像的标签
IMAGE ID镜像ID
CREATED镜像创建时间
SIZE镜像大小

docker images --help

[root@shiqi ~]# docker images --help

Usage:  docker images [OPTIONS] [REPOSITORY[:TAG]]

List images

Options:
  -a, --all             #显示所有的镜像
      --digests         #显示摘要
  -f, --filter filter   #根据提供的条件过滤输出
      --format string   #使用Go模板打印漂亮的图像
      --no-trunc        #不截断输出
  -q, --quiet           #只显示图像id

查找镜像

我们可以从 Docker Hub 网站来搜索镜像,Docker Hub 网址为: https://hub.docker.com/

我们也可以使用 docker search 命令来搜索镜像

[root@shiqi ~]# docker search mysql
NAME                              DEscriptION                                     STARS     OFFICIAL   AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   11547     [OK]       
mariadb                           MariaDB Server is a high performing open sou…   4393      [OK]       
mysql/mysql-server                Optimized MySQL Server Docker images. Create…   854                  [OK]
percona                           Percona Server is a fork of the MySQL relati…   558       [OK]       
phpmyadmin                        phpMyAdmin - A web interface for MySQL and M…   346       [OK]       
centos/mysql-57-centos7           MySQL 5.7 SQL database server                   91                   
mysql/mysql-cluster               Experimental MySQL Cluster Docker images. Cr…   88                   
centurylink/mysql                 Image containing mysql. Optimized to be link…   59                   [OK]
databack/mysql-backup             Back up mysql databases to... anywhere!         51                   
prom/mysqld-exporter                                                              43                   [OK]
deitch/mysql-backup               REPLACeD! Please use http://hub.docker.com/r…   41                   [OK]
tutum/mysql                       base docker image to run a MySQL database se…   35                   
linuxserver/mysql                 A Mysql container, brought to you by LinuxSe…   32                   
schickling/mysql-backup-s3        Backup MySQL to S3 (supports periodic backup…   31                   [OK]
mysql/mysql-router                MySQL Router provides transparent routing be…   23                   
centos/mysql-56-centos7           MySQL 5.6 SQL database server                   20                   
arey/mysql-client                 Run a MySQL client from a docker container      19                   [OK]
fradelg/mysql-cron-backup         MySQL/MariaDB database backup using cron tas…   16                   [OK]
openshift/mysql-55-centos7        DEPRECATED: A Centos7 based MySQL v5.5 image…   6                    
devilbox/mysql                    Retagged MySQL, MariaDB and PerconaDB offici…   3                    
idoall/mysql                      MySQL is a widely used, open-source relation…   3                    [OK]
jelastic/mysql                    An image of the MySQL database server mainta…   2                    
ansibleplaybookbundle/mysql-apb   An APB which deploys RHSCL MySQL                2                    [OK]
widdpim/mysql-client              Dockerized MySQL Client (5.7) including Curl…   1                    [OK]
centos/mysql-80-centos7           MySQL 8.0 SQL database server                   1                    
NAME名字
DEscriptION镜像仓库源的名称
STARS收藏数
OFFICIAL是否 docker 官方发布
AUTOMATED自动构建
下载镜像

使用命令 docker pull 镜像名 [:tag] 来下载镜像

[root@shiqi ~]# docker pull mysql
Using default tag: latest		#如果不写tag,默认下载最新版本
latest: Pulling from library/mysql
b380bbd43752: Pull complete 	# 分成下载,docker image的核心 联合文件系统
f23cbf2ecc5d: Pull complete 
30cfc6c29c0a: Pull complete 
b38609286cbe: Pull complete 
8211d9e66cd6: Pull complete 
2313f9eeca4a: Pull complete 
7eb487d00da0: Pull complete 
4d7421c8152e: Pull complete 
77f3d8811a28: Pull complete 
cce755338cba: Pull complete 
69b753046b9f: Pull complete 
b2e64b0ab53c: Pull complete 
Digest: sha256:6d7d4524463fe6e2b893ffc2b89543c81dec7ef82fb2020a1b27606666464d87	#签名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest	#真实地址
删除镜像

镜像删除使用 docker rmi 命令,

docker rmi -f 容器id	#删除指定的容器
docker rmi -f 容器id 容器id 容器id。。。	#删除多个容器
docker rmi -f $(docker images -aq)	#删除全部的容器
Docker 的容器使用

注意:我们有了镜像才可以创建容器,Linux,下载一个 CentOs 镜像来测试学习

创建CentOs容器
docker pull centos
启动容器
docker run [可选参数] images

#参数说明
--name="Name"	#容器名字 用来区分容器
-d				#后台方式运行
-i				#交互操作
-t				#终端
-it				#使用交互方式运行,进入容器查看内容
-p				#指定容器端口, -p 8080:8080
		-p ip:主机端口:容器端口
		-p 主机端口:容器端口(常用)
		-p 容器端口
		容器端口
-P				#随机指定端口

以下命令使用 centos 镜像启动一个容器,参数为以命令行模式进入该容器:

[root@shiqi ~] docker run -it centos /bin/bash
# centos 是镜像
# /bin/bash	放在镜像后的是命令,这里我们希望有个交互式shell,因此使用 /bin/bash
# 主机名称与镜像id 相对应 

使用 exit 退出镜像

查看正在运行的镜像
#docker ps 命令
	#列出当前正在运行的容器
-a	#列出正在运行的容器 + 带出历史运行过的容器
-n=个数	#显示最近创建的容器
-q	#只显示容器的编号
退出容器
exit	#直接推出容器(快捷方式 Ctrl + D)
Ctrl + q + p	#容器不停止退出
删除容器
docker rm 容器id #删除指定容器,不能删除正在运行的容器,如果要强制删除使用 rm -f 
docker rm -f $(docker ps -aq)	#删除所有容器
docker ps -a -q|xargs docker rm	#删除所有容器	xargs进行一个一个的删除	
启动和停止容器
docker start 容器id #启动容器
docker restart 容器id #重启容器
docker stop	容器id #停止容器
docker kill 容器id #强行停止当前容器
后台启动容器
#命令 docker run -d 镜像名!
docker run -d centos

#问题 docker ps	发现centos停止了
#常见的坑:docker 容器使用后台运行,就必须要一个前台进程,docker发现没有应用,就会自动停止
# nginx,容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了
查看日志
docker logs -f -t --tail 容器,没有日志
# 显示日志
-tf	#显示日志
--tail number	#要显示日志条数
查看进程信息
# 命令 docker top 容器id
查看镜像的元数据
# docker inspect r
进入当前正在运行的容器
#通常容器都是后台方式运行的,需要进入容器,修改一些配置

#命令
docker exec -it 容器id /bin/bash

#测试
[root@shiqi ~]# docker ps	#查看当前运行的容器
ConTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@shiqi ~]# docker images	#查看当前docker中的镜像
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
centos       latest    5d0da3dc9764   4 weeks ago   231MB
[root@shiqi ~]# docker run -it centos /bin/bash		#运行centos
[root@0161123598d9 /]# [root@shiqi ~]# docker run -it centos /bin/bash
[root@80e65b729cef /]# [root@shiqi ~]# docker ps	#再次查看运行中的容器
ConTAINER ID   IMAGE     COMMAND       CREATED              STATUS              PORTS     NAMES
80e65b729cef   centos    "/bin/bash"   35 seconds ago       Up 34 seconds                 interesting_poincare
0161123598d9   centos    "/bin/bash"   about a minute ago   Up about a minute             naughty_beaver
[root@shiqi ~]# docker exec -it 80e65b729cef /bin/bash	
[root@80e65b729cef /]# ls  
bin  etc   lib	  lost+found  mnt  proc  run   srv  tmp  var
dev  home  lib64  media       opt  root  sbin  sys  usr
[root@80e65b729cef /]# 



#方式二
#命令
docker attach 容器id

#测试
[root@shiqi ~]# docker ps
ConTAINER ID   IMAGE     COMMAND       CREATED          STATUS          PORTS     NAMES
80e65b729cef   centos    "/bin/bash"   22 minutes ago   Up 13 seconds             interesting_poincare
[root@shiqi ~]# docker attach 80e65b729cef
[root@80e65b729cef /]# 


#docker exec		#进入容器后开启一个新的终端,可以在里面操作(常用)
#docker attach		#进入容器正在执行的终端,不会启动新的进程!

从容器内拷贝文件到主机上
#命令
docker cp 容器id:容器内路径 目的的主机路径 (容器存在就可执行,与是否正在执行没有关系)

#测试
[root@shiqi ~]# docker run -it centos /bin/bash						#运行docker中的容器
[root@7054f07a2939 /]# ls											#查看容器中的目录
bin  etc   lib	  lost+found  mnt  proc  run   srv  tmp  var
dev  home  lib64  media       opt  root  sbin  sys  usr
[root@7054f07a2939 /]# cd /home										#进入容器中的home目录
[root@7054f07a2939 home]# touch test.java							# 在home目录中 创建 test.java
[root@7054f07a2939 home]# ls										# 查看home目录
test.java
[root@7054f07a2939 home]# exit										#退出docker容器
[root@shiqi ~]# docker ps											# 查看当前是否存运行中的容器
ConTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@shiqi ~]# cd /home											#进入主机上的 home 目录
[root@shiqi home]# ls												#查看home目录上的当前文件
shiqi  test
[root@shiqi home]# docker cp 7054f07a2939:/home/test.java /home			# 将容器内的文件拷贝到主机
[root@shiqi home]# ls												#查看home目录,是否拷贝成功
shiqi  test  test.java
[root@shiqi home]# 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/338779.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号