docker常用命令

一,如何启动和停止引擎服务

1.启动docker

systemctl start docker

2.重启docker

systemctl restart docker

3.停止docker

systemctl stop docker

4.查看docker状态

systemctl status docker

二,docker服务安装查看

5.查看docker版本号

docker -v

6.查看docker详细信息

docker version

三,docker命令

7.查看镜像

[root@localhost ~]# systemctl start docker

[root@localhost ~]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

mysql 5.7 eef0fab001e8 3 weeks ago 495MB

hello-world latest feb5d9fea6a5 14 months ago 13.3kB

centos 7 eeb6ee3f44bd 14 months ago 204MB

REPOSITORY :镜像在仓库中的名称,本文中以后都简称镜像名称

TAG :镜像标签

IMAGE ID :镜像

ID CREATED :镜像的创建日期(不是获取该镜像的日期)

SIZE :镜像大小 

注:这些镜像都是存储在 Docker 宿主机的 /var/lib/docker 目录下

8.搜索镜像

docker search [镜像名称]

NAME :镜像名称

DESCRIPTION :镜像描述

STARS :用户评价,反应一个镜像的受欢迎程度

OFFICIAL :是否为官方构建

AUTOMATED :自动构建,表示该镜像由

Docker Hub 自动构建流程创建的。

9.拉取镜像

docker pull [镜像名称]

拉取镜像就是从中央仓库下载镜像到本地。

通过查看 tag 信息,如果我们要下载 centos8的镜像。

[root@localhost ~]# docker pull centos:8

10.删除镜像

删除单个镜像

docker rmi 镜像id

删除多个镜像

docker rmi 镜像id1 镜像id2 镜像id3

docker images -q 可以查询到所有镜像的 ID,通过组合命令可以实现删除所有镜像的操作。

docker rmi `docker images -q`

四,容器相关命令

1.查看容器

docker ps --- 查看运行的容器

[root@localhost ~]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

CONTAINER ID :容器 ID

IMAGE :所属镜像

COMMAND :

CREATED :创建时间

STATUS :容器状态

PORTS :端口

NAMES :容器名称

2.查看停止的容器

docker ps -f status=exited

3.查看所有容器

docker ps -a

4.查看容器id

docker ps -q

5.查看最后一次运行的容器

docker ps -l

五,创建并启动容器

格式: docker run  [OPTIONS] IMAGE [COMMAND] [ARG...]

选项:

-i :表示运行容器;

-t :表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪 终端;

--name :为创建的容器命名;

-v :表示目录映射关系(前者是宿主机目录,后者是映射到容器上的目录),可以使用多个 -v 做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上;

-d :在 run 后面加上 -d 参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登 录容器,如果只加 -i -t 两个参数,创建容器后就会自动进容器里);

-p :表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个 -p 做多个端口 映射。

-P :随机使用宿主机的可用端口与容器内暴露的端口映射。

1.创建并进入容器

格式:docker run -it --name BB AA:镜像版本号 /bin/bash -- 通过镜像AA创建容器BB,运行容器并进入容器的/bin/bash

[root@localhost ~]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

mysql 5.7 eef0fab001e8 3 weeks ago 495MB

centos 7 eeb6ee3f44bd 14 months ago 204MB

centos 8 5d0da3dc9764 14 months ago 231MB

[root@localhost ~]# docker run -it --name centos7 centos:7 /bin/bash

2.守护式的方式创建容器

格式:docker run -id --name BB AA:镜像版本号

[root@localhost ~]# docker run -id --name centos7-3 eeb6ee3f44bd /bin/bash

f2e90a5827ee64ad150ab95d3fe74a91dc3d355424243ae4e33a72f898353c69

3.登录守护式容器方式

格式:docker exec -it 容器名称|容器ID /bin/bash

[root@localhost ~]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

f2e90a5827ee eeb6ee3f44bd "/bin/bash" About a minute ago Up About a minute centos7-3

[root@localhost ~]# docker exec -it centos7-3 /bin/bash

[root@f2e90a5827ee /]#

六,停止和启动容器

1.启动容器

docker start 容器名称|容器id

2.停止容器

docker stop 容器名称|容器id

3.重启容器

docker restart 容器名称|容器id

4.停止容器

docker kill 容器名称|容器id

七,删除容器

1.删除指定容器

docker rm 容器名称|容器id

2.删除多个容器

docker rm 容器名称|容器id 容器名称|容器id

八,拷贝文件

格式:docker cp 需要拷贝的文件或者目录 容器名称:容器目录

[root@localhost ~]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

f2e90a5827ee eeb6ee3f44bd "/bin/bash" 5 minutes ago Up 5 minutes centos7-3

[root@localhost ~]# docker cp /root/1.sql centos7-3:/root

[root@localhost ~]# docker exec -it centos7-3 /bin/bash

[root@f2e90a5827ee /]# ls /root/

1.sql anaconda-ks.cfg

将文件从容器中拷贝出来

格式:docker cp 容器名称:容器目录 需要拷贝的文件

[root@f2e90a5827ee /]# touch /root/test.txt

[root@f2e90a5827ee /]# exit

exit

[root@localhost ~]# docker cp centos7-3:/root/test.txt /tmp/

[root@localhost ~]# ls /tmp/

test.txt

九,目录挂载

格式:docker run -it -v 宿主机目录:容器目录 --name 容器名称 镜像名称

[root@localhost ~]# docker run -it -v /root/:/root/ --name centos7-4 centos:7

#多目录挂载

格式:docker run -di -v /宿主机目录:/容器目录 -v 宿主机目录2:/容器目录2 镜像名称

1.匿名挂载

匿名挂载只需要写容器目录即可,容器外对应的目录会在 /var/lib/docker/volumes 中生成。

#匿名挂载

[root@localhost ~]# docker run -di -v /root/ --name centos7-5 centos:7

98b42386e4181ba46a85173740e97c47111e755c19f6716dcd72561e5d24cd3d

#查看volume 数据卷信息

[root@localhost ~]# docker volume ls

2.具名挂载

具名挂载就是给数据卷起了个名字,容器外对应的目录会在 /var/lib/docker/volume 中生成。

# 具名挂载

[root@localhost ~]# docker run -di -v centos7-6-root:/root/ --name centos-6 centos:7

47411c26febf3237a56312e68046fb66e411d17bd9a42d8b90c85fe18b3577c2

#查看volume 数据卷信息

[root@localhost ~]# docker volume ls

3.指定目录挂载

格式:docker run -di -v /宿主机目录:/容器目录 -v /宿主机目录2:/容器目录2 镜像名

4.查看目录挂载关系

通过 docker volume inspect 数据卷名称 可以查看该数据卷对应宿主机的目录地址

[root@localhost ~]# docker volume inspect centos7-6-root

[

{

"CreatedAt": "2022-11-30T06:55:40Z",

"Driver": "local",

"Labels": null,

"Mountpoint": "/var/lib/docker/volumes/centos7-6-root/_data",

"Name": "centos7-6-root",

"Options": null,

"Scope": "local"

}

]

    通过 docker inspect 容器ID或名称 ,在返回的 JSON 节点中找到 Mounts ,可以查看详细的数据 挂载信息。

5.只读/读写挂载

# 只读。只能通过修改宿主机内容实现对容器的数据管理。

格式:docker run -it -v /宿主机目录:/容器目录:ro 镜像名

[root@localhost ~]# docker run -it -v /root/:/root:ro centos:7

# 读写,默认。宿主机和容器可以双向操作数据。

格式:docker run -it -v /宿主机目录:/容器目录:rw 镜像名

6.volumes-from(继承)

# 容器 centos7-01 指定目录挂载

docker run -di -v /mydata/docker_centos/data:/usr/local/data --name centos7-01 centos:7

# 容器 centos7-04 和 centos7-05 相当于继承 centos7-01 容器的挂载目录

docker run -di --volumes-from centos7-01:ro --name centos7-04 centos:7

docker run -di --volumes-from centos7-01:rw --name centos7-05 centos:7

十,查看容器的Ip地址

格式:docker inspect 容器名称|容器id

十一,举例

到镜像地址里面拉取镜像nginx1.19,docker images 查看到拉取的镜像后,运行容器 docker run -d -p 8080:80 nginx:1.19 在后台运行,不占用控制台 nginx的默认端口是80,前者是宿主机的端口,后者是容器映射镜像端口,镜像名称:版本号. 然后查看所有的容器 docker ps 然后输入ifconfig 查看本地ip地址,就能使用浏览器访问Nginx

docker存储卷管理

目的:因为容器里面的镜像删除或者重启后,就不复存在了,为了保证删除重启运行后里面的内容不变,所以出现了存储卷。存储卷分两种volume | hostPath

volume

1.查看容器中所有的卷

docker volume ls

2.创建一个html的卷

docker volume create html

3.查看创建出来的卷的详细信息

docker volume inspect html

4.运行一个名为myweb1的容器

docker run --name myweb1 -d -v html:/usr/share/nginx/html -p 8080:80 nginx:1.19

5.查看网络链接

curl localhost:8080 查看html卷里面的东西,确保是否成功启动

6.

运行docker volume inspect html后有个参数Mountpoint 是物理路径,进入到物理路径下以后,cd进去,下边有个index.html文件

7.更改Index.html文件里面的内容

echo "hello world!" > index.html

8. 运行命令

curl localhost:8080 -- hello world!

9.运行停止和删除容器的命令

docker stop myweb1 && docker rm myweb1

10.然后再次运行容器

docker run --name myweb1 -d -v html:/usr/share/nginx/html -p 8080:80 nginx:1.19

11.执行查询链接

curl localhost:8080 -- hello world!

注:后几步的意思是把内容放到卷里面,即时删除重启容器,只要再次创建运行同一个容器,里面的内容还会存在。

hostpath

和volume 差不多,先运行容器

docker run --name myweb2 -d -v /host/html:/usr/share/nginx/html -p 8081:80 nginx:1.19

需要先在/host/html下边创建一个Index.html文件

echo "Hello World !" -> index.html

然后进行连接curl localhost:8081 -- Hello World !

然后执行删除和停止容器,再次创建后,也不影响文件内容。

volume 只需要记住名字即可,具体存储到哪个地方是docker容器进行管理的,在初始化容器的时候,volume下边没有数据,可以把容器中的数据映射到卷里面。hostpath完全以主机为主,主机里面为空,则hostpath里面也是空的。

达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台

  • 21
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值