Docker的学习

向来用vulhub只会docker-compose up -d直接搭建 自己也想多学点命令哈!
在这里插入图片描述


Docker环境信息:

1.docker info
–显示Docker系统信息,包括镜像和容器数

在这里插入图片描述
2.docker version
–显示Docker版本信息
在这里插入图片描述


容器的管理:

1.docker run
–创建一个新的容器并运行一个命令:docker run [options] IMAGE [COMMAND] [ARG...]

-i选项表示使用交互模式,始终保持输入流开放
-t选项表示分配一个伪终端,一般两个参数结合时使用-it,即可在容器中利用打开的伪终端进行交互操作
-d选项: 后台运行容器,并返回容器ID
–name选项可以指定docker run命令启动的容器名字,若无此选项,Docker将为容器随机分配一个名字
-c选项:用于给运行在容器中的所有进程分配CPU的shares值,这是一个相对权重,实际的处理速度还与宿主机的CPU相关
-m选项:用于限制为容器中所有进程分配的内存总量,以B、K、M、G为单位
-v选项:用于挂载一个volume,可以用多个-v参数同时挂载多个volume。volume的格式为[host-dir]:[container-dir]:[rw|ro]
-p选项:用于将容器内部端口映射给宿主机的端口,其常见格式为:主机(宿主)端口:容器内部端口
-P选项:随机端口映射,容器内部端口随机映射到宿主机的端口

示例1 运行phpmyadmin管理,并分配一个伪终端:

docker run -it vulhub/phpmyadmin:4.4.15.6 /bin/bash

示例2 后台运行ubuntu容器,并返回该容器ID:

在这里插入图片描述
2.docker start
–启动一个或多个已经被停止的容器:docker start [OPTIONS] CONTAINER [CONTAINER...]

示例:在这里插入图片描述

docker run 与docker start的区别
1、docker run的作用相当于执行了两步操作:将镜像放入容器中(docker create),然后将容器启动,使之变成运行时容器(docker start)。
2、docker start的作用是,重新启动已存在的镜像。也就是说,如果使用这个命令,我们必须事先知道这个容器的ID,或者这个容器的名字,我们可以使用docker ps找到这个容器的信息。

3.docker restart
–重启容器:docker restart [OPTIONS] CONTAINER [CONTAINER...]
在这里插入图片描述
在这里插入图片描述

4.docker rm
–删除一个或多少容器
用法:

docker rm [OPTIONS] CONTAINER [CONTAINER...]

-f :通过SIGKILL信号强制删除一个运行中的容器
-l :移除容器间的网络连接,而非容器本身
-v :-v 删除与容器关联的卷

5.docker stop
–停止一个运行中的容器(利用方法和start相似)

6.docker kill
–kill命令的作用是杀掉一个运行中的容器

docker kill [OPTIONS] CONTAINER [CONTAINER...]
-s :向容器发送一个信号

tips: docker stop 与 docker kill的区别?

docker stop,支持“优雅退出”。先发送SIGTERM信号,在一段时间之后(10s)再发送SIGKILL信号。Docker内部的应用程序可以接收SIGTERM信号,然后做一些“退出前工作”,比如保存状态、处理当前请求等。

docker kill,发送SIGKILL信号,应用程序直接退出。

一些常见的rm和kill组合姿势~

杀死所有正在运行的容器
docker kill $(docker ps -a -q)

删除所有已经停止的容器
docker rm $(docker ps -a -q)

7.docker exec
docker exec命令比较常用,他的作用是在运行的容器中执行命令

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
OPTIONS说明:
-d :分离模式: 在后台运行
-i :即使没有附加也保持STDIN 打开
-t :分配一个伪终端

在这里插入图片描述
进入docker容器中/bin/bash 终端运行


镜像仓库相关命令

1.docker login
–登陆到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub

docker login [OPTIONS] [SERVER]

-u :登陆的用户名
-p :登陆的密码

在这里插入图片描述

2.docker logout
–退出仓库
在这里插入图片描述

3.docker search
–从Docker Hub上查找指定的镜像

docker search [OPTIONS] images

--automated :只列出 automated build类型的镜像
--no-trunc :显示完整的镜像描述
-s :列出收藏数不小于指定值的镜像

示例 从Docker Hub查找所有镜像名包含nginx的,并且收藏数大于10的镜像:

docker search -s 10 nginx

在这里插入图片描述
4.docker pull
–从镜像仓库中拉取或者更新指定镜像

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

-a:拉取所有 tagged 镜像
--disable-content-trust :忽略镜像的校验,默认开启

示例 从Docker Hub拉取nginx最新版镜像:

docker pull nginx

在这里插入图片描述

5.docker push
–将本地的镜像上传到镜像仓库,首先要登录到镜像仓库,还要登录到Docker Hub创建对应名称的仓库,然后用tag命令给镜像打标签,只有打上标签才可以上传成功。(详细介绍)

docker push [OPTIONS] NAME[:TAG]

--disable-content-trust :忽略镜像的校验,默认开启

6.docker tag
–标记本地镜像,将其归入某一仓库

一个完整的push示例:

[root@localhost ~]# docker tag nginx:latest area39/nginx:v1
[root@localhost ~]# docker push area39/nginx:v1
The push refers to repository [docker.io/area39/nginx]
589561a3ffb4: Pushed
ef7dbb0cfc81: Pushed
d56055da3352: Pushed
v1: digest: sha256:f83b2ffd963ac911f9e638184c8d580cc1f3139d5c8c33c87c3fb90aebdebf76 size: 948

镜像管理相关命令

1.docker images
–通过docker images命令可以列出主机上的镜像,默认只列出最顶层的镜像,可以使用-a选项显示出所有镜像

[root@localhost ~]# docker images -a

在这里插入图片描述

2.docker commit
–docker commit命令可以将一个容器固化为一个新的镜像。当需要制定特定的镜像时,会进行修改容器的配置,比如在容器中安装一些特定的工具等,通过commit命令可以将这些修改保存起来,使其不会因为容器的停止而丢失

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

-a :提交的镜像作者
-c :使用Dockerfile指令来创建镜像
-m :提交时的说明文字
-p :在commit时,将容器暂停

实例:
在这里插入图片描述
更加详细的操作:https://www.cnblogs.com/waterlufei/p/6682345.html

容器运维操作:

1.docker attach
–连接正在运行的容器,观察该容器的运行情况,或与容器的主进程进行交互
在这里插入图片描述

2.docker ps

–常用的选项有-a和-l,-a选项可以查看所有的容器,包括停止的容器;-l选项只查看最新创建的容器,包括不在运行的容器

docker ps [OPTIONS]

-a :显示所有的容器,包括未运行的
-f :根据条件过滤显示的内容
--format :指定返回值的模板文件
-l :显示最近创建的容器
-n :列出最近创建的n个容器
--no-trunc :不截断输出
-q :静默模式,只显示容器编号
-s :显示总的文件大小

3.docker rename
–重命名容器
用法:docker rename CONTAINER NEW_NAME
实例:

[root@localhost ~]# docker rename 48432e783e65 ctf-xss

4.docker cp
–用于容器与主机之间的数据拷贝

docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH

-L :保持源目标中的链接

示例1 将本目录下的test.php文件复制到容器的’/var/www/html/‘目录下:

[root@localhost ~]# docker cp test.php 5198ec963e43:/var/www/html/
[root@localhost ~]# docker exec -it 5198ec963e43 /bin/bash
root@5198ec963e43:/# ls /var/www/html
index.phptest.php

在这里插入图片描述

示例2 将容器内’/var/www/html/index.php’复制到本机/root目录下:


[root@localhost ~]# docker cp 5198ec963e43:/var/www/html/index.php /root/
[root@localhost ~]# ls
index.phptest.php

在这里插入图片描述

我感觉有用的都写出来了 大家如果想要了解更多的话可以参考其他的文章!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值