Docker(二:基本命令行)

下面简单介绍下Docker的一些命令操作(本人用的是基于Linux内核的Ubuntu系统)。

前言:在不了解该输入哪个命令时,可以输入docker --help获取全部命令信息,或者进一步筛选,例如docker run --help获取run命令的信息:
在这里插入图片描述

(一)镜像的搜索 拉取与查看
这是docker的官方仓库,我们镜像一般是都是直接从上面拉取。
1.搜索

docker search [OPTIONS] TERM

命令含义:docker 表明是docker命令, search 命令的名称, OPTIONS 可选的参数(具体可以通过docker search --help查看), TERM 镜像名称(模糊匹配搜索)
比如搜索名字包含hello-world的镜像:

docker search hello-world

在这里插入图片描述
可看到所有包含hello-world名称的镜像,还可以通过添加[OPTIONS] 可选声明去筛选,这里不累述,具体看help。

2.拉取

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

命令含义:NAME:镜像名称,[:TAG|@DIGEST]:版本号,可选,默认为最新版本
比如拉取hello-world镜像:

docker pull hello-world

在这里插入图片描述
3.查看当前拥有的镜像

docker images

在这里插入图片描述
(二)容器的创建 查看 启动 进入以及停止
拉取镜像之后,我们就可以利用镜像创建容器了。
1.容器的创建
基于hello-world镜像创建一个容器

docker create hello-world

在这里插入图片描述
2.容器的查看

docker ps -a

在这里插入图片描述
这是查看所有的容器,其中STATUS代表容器的状态,Created表示创建,Up表示正运行,Exited表示停止。
其他命令:docker ps指查看正在运行的容器,docker ps -n 5指查看前面五个容器的信息,其他更多的查看容器命令可以求助help

假如需要查看容器详细信息,可通过如下命令查看:

docker inspect [NAME]/[CONTAINER ID]

3.容器的启动与进入
启动上面创建的容器
方式一:以容器id或者容器名启动

docker start [NAME]/[CONTAINER ID]

在这里插入图片描述
可以看到容器id为744c32992ca6的容器的status状态有Created变成了Exited,说明命令生效,已经启动过了。

方式二:前面的命令都基于先create一个容器再start启动,而run命令则为直接创建并启动一个容器,假如不存在该镜像,还会直接从仓库下载再创建启动:

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

比如运行一个基于hello-world的镜像

docker run -it hello-world

在这里插入图片描述
命令意思为新创建并运行一个容器,可以看到输出内容Hello from Docker!
其中-i表示交互式,-t表示为创建的容器分配一个伪tty终端,一般两个一起用-it,还可以为容器指定需要执行的命令。
比如:docker run -it ubuntu /bin/bash
表示本地寻找Ubuntu镜像,若没有则从仓库下载,然后创建并启动一个基于Ubuntu镜像的容器,并且在容器里执行/bin/bash命令(即LINUX系统中执行shell解释器的版本,还有其他一些版本如/bin/sh,可以在进入容器后执行命令cat /etc/shells查看支持的shell解析器的版本,linux默认的shell类型时bash,所以一般情况下命令参数输入/bin/bash即可)
在这里插入图片描述
所以我们能看到该容器的bash终端,用户且能与之交互,exit为退出并关闭该容器
在这里插入图片描述
方式三:以上的容器都是短暂式的启动,即启动完之后或者执行exit退出容器就停止,因此我们可以以daemon守护进程的方式启动
比如:docker run -it -d --name myubuntu d131e0fa2585"
-d后台启动一个镜像id为d131e0fa2585的ubuntu容器;–name自定义给该容器命名,没有这参数的话,会默认随机给容器一个名字;其他一些参数:-p对外映射端口号,比如启动一个tomcat容器(tomcat默认端口号为8080)时,可以设置-p 8088:8080即访问宿主机的8088端口号就能访问到该tomcat容器了;-e设置环境变量,比如启动mysql等数据库的时候,添加参数 -e MYSQL_ROOT_PASSWORD=123456可设置密码为123456;-v:把宿主机的文件映射到容器对应的目录下,比如启动容器时可以设置容器时间为宿主机时间-v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime其他参数可自行搜索。
在这里插入图片描述
可以看到时间不是北京时间:
在这里插入图片描述
这时我们可以重新启动一个容器,加上-v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime参数:
在这里插入图片描述
然后时间已经跟宿主机同步了
在这里插入图片描述

查看容器的日志
通过docker logs [OPTIONS] [NAME]/[CONTAINER ID] 可以查看到输出日志内容,
OPTIONS参数有-f:跟踪日志输出;–since:显示某个时开始间的所有日志;-t:显示时间戳;–tail:仅列出最新N条容器日志;
container_id为容器id ,name为名,参数二选一

可以更细致化地筛选,比如查看指定时间以及指定行数的日志:

docker logs -f -t --since="20190507" --tail=10 1504f097ef8a

比如持续查看容器id为1504f097ef8a的tomcat容器的开始时间20190507(或者2019-05-07)且最新的10条日志输出
在这里插入图片描述

怎么进入运行中的容器呢?
两种方式:
1):docker attach [NAME]/[CONTAINER ID]
2):docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
假如我们需要进入交互式终端,需要传-it以及一个容器可执行命令,比如连接一个基于ubuntu镜像新创建的守护进程的容器,并进入交互式终端bash
在这里插入图片描述

容器必须处于运行中状态,不然报错
在这里插入图片描述

4.容器的重启和停止
重启命令:docker restart [NAME]/[CONTAINER ID]
container_id为容器id ,name为名,参数二选一
停止命令:docker stop[NAME]/[CONTAINER ID]
同上,参数二选一
或者强制停止,直接kill杀死

docker kill [NAME]/[CONTAINER ID]

在这里插入图片描述

(三)容器的删除
删除命令:docker rm [NAME]/[CONTAINER ID]
[NAME]/[CONTAINER ID]`可以为多个,空格隔开,前提是容器必须先停止运行才能执行删除

也可批量删除:

docker ps -a -q | xargs docker rm

-q表示根据CONTAINER ID批量删除

(四)镜像的删除
与容器的删除命令相似,前提是基于这个镜像的容器必须先删除,才能删除这个镜像
单个删除:docker rmi [NAME]/[IMAGE ID]
批量删除:docker ps -a -q | xargs docker rmi
-q表示根据IMAGE ID批量删除
在这里插入图片描述
(五)容器与宿主机之间文件的复制拷贝

先新建运行一个tomcat容器,默认情况下,容器时间并不是北京时间,所以需要同步时间可以通过run命令运行容器时设置,
在这里插入图片描述
-it指交互式终端,-d守护进程,-p对外映射的端口号,–name容器名称,-v将宿主机的文件挂载到容器下,这里是将宿主机的时区以及时间文件挂在到tomcat容器。

1.从宿主机复制拷贝文件到指定容器
命令:docker cp SRC_PATH [NAME]/[CONTAINER ID]:DEST_PATH
其中SRC_PATH指要拷贝的文件在宿主机的资源目录路径,[NAME]/[CONTAINER ID]指容器名或者容器id,DEST_PATH指文件要拷贝到容器下的目标目录路径
在这里插入图片描述
比如想把宿主机/usr目录下的JSZHST.war文件拷贝到容器名为tanchengtomcat的容器的/usr/local/tomcat/webapps的目录下:
在这里插入图片描述

2.从指定容器复制拷贝文件到宿主机
命令:docker cp [NAME]/[CONTAINER ID]:DEST_PATH SRC_PATH
跟上面的命令对比,只需把路径调转过来。
二者执行命令时都是在宿主机上面执行。

(六)容器的更新
命令:docker update [OPTIONS] CONTAINER [CONTAINER...]
比如要更新某个容器id为ababf7571666的容器的重启策略:docker update --restart=always ababf7571666

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值