Docker基本命令,常用命令

目录

一,关于镜像命令

1,查看镜像

2,查找镜像

3,拉取镜像

4,删除镜像

4.1,删除单个命令:

4.2,删除多个镜像命令:

二,关于容器命令

1,创建容器

1.1,创建容器但不启动,语法与run一样

2,启动和停止容器命令

3,进入容器命令

4,查看容器信息

5,显示容器或镜像的元数据

6,获取容器的日志

7,删除容器

7.1,删除单个容器

7.2,删除多个容器

7,容器和宿主机的数据拷贝

3,Commit镜像

4,容器数据卷

4.1容器与主机的挂载

4.2,具名挂载和匿名挂载

4.3,容器与容器的挂载

5,万能命令


一,关于镜像命令

1,查看镜像

docker images [options]

  • -a:列出所有镜像
  • -q:只显示镜像的ID
  • -f:显示满足条件的镜像

2,查找镜像

docker search 镜像名称

[root@master ~]# docker search centos
NAME                                         DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
centos                                       DEPRECATED; The official build of CentOS.       7549      [OK]       
kasmweb/centos-7-desktop                     CentOS 7 desktop for Kasm Workspaces            35                   
bitnami/centos-base-buildpack                Centos base compilation image                   0                    [OK]
bitnami/centos-extras-base                                                                   0                    
couchbase/centos7-systemd                    centos7-systemd images with additional debug…   7                    [OK]

3,拉取镜像

docker pull 镜像名称[:TAG]

如果不绑定版本,则会拉取最新版本的镜像

[root@master ~]# docker pull mysql:5.7
5.7: Pulling from library/mysql
72a69066d2fe: Pull complete 
93619dbc5b36: Pull complete 
99da31dd6142: Pull complete 
626033c43d70: Pull complete 
37d5d7efb64e: Pull complete 
ac563158d721: Pull complete 
d2ba16033dad: Pull complete 
0ceb82207cd7: Pull complete 
37f2405cae96: Pull complete 
e2482e017e53: Pull complete 
70deed891d42: Pull complete 
Digest: sha256:f2ad209efe9c67104167fc609cca6973c8422939491c9345270175a300419f94
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7

4,删除镜像

4.1,删除单个命令:

docker rmi [OPTIONS] IMAGE [IMAGE…]

  •  -f:强制删除

4.2,删除多个镜像命令:

docker rmi $(docker images[OPTIONS] mysql)

docker rmi $(docker images[OPTIONS])

第一条是删除所有名字是mysql的镜像

第二条是删除所有镜像

[root@master ~]# docker rmi -f c20987f18b13
Untagged: mysql:5.7
Untagged: mysql@sha256:f2ad209efe9c67104167fc609cca6973c8422939491c9345270175a300419f94

二,关于容器命令

1,创建容器

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

 OPTIONS说明:

  • -d:后台运行容器
  • -it:交互模式运行容器
  • -p:指定端口,格式为:宿主机端口:容器端口,比如:8080:8080
  • -P:随机端口,容器内端口随机映射到宿主机端口
  • --name="XXX":容器名称
  • --link:容器互联
  • --volume:绑定数据卷
[root@master ~]# docker run -d -it centos
d85f69c9a79d0cf3dfcb767b80d26a2ac3fab046dcab7bbbea573855c56173bf

1.1,创建容器但不启动,语法与run一样

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

2,启动和停止容器命令

  • docker start 容器id
  • docker stop 容器id
  • docker restart 容器id
  • docker kill 容器id

3,进入容器命令

docker exec:开启一个新的终端操作

[root@master ~]# docker exec -it d85f69c9a79d /bin/bash
[root@d85f69c9a79d /]# 

docker attach:进入在当前容器中正在运行的终端操作

[root@master ~]# docker attach d85f69c9a79d
[root@d85f69c9a79d /]# 

4,查看容器信息

docker ps [OPTIONS]

 OPTIONS说明: 

  • 不写参数,显示正在运行的容器
  • -a:显示所有镜像
  • -q:只显示容器ID
  • -n:显示最近创建的n个容器
[root@master ~]# docker ps -a 
CONTAINER ID   IMAGE     COMMAND       CREATED         STATUS                      PORTS     NAMES
d85f69c9a79d   centos    "/bin/bash"   7 minutes ago   Exited (0) 13 seconds ago             awesome_chaum

5,显示容器或镜像的元数据

docker inspect [OPTIONS] NAME|ID [NAME|ID...]

[root@master ~]# docker inspect d85f69c9a79d

6,获取容器的日志

docker logs [OPTIONS] CONTAINER

OPTIONS说明: 

  • -t:显示时间戳
  • --tail:只列出N条日志
  • --since:显示指定时间后的日志

7,删除容器

7.1,删除单个容器

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

 -f:强制删除 

-v:删除与容器关联的数据卷

7.2,删除多个容器

docker rm $(docker ps[OPTIONS])

7,容器和宿主机的数据拷贝

格式——docker cp 容器ID:容器路径  宿主机路径(将容器文件拷贝到宿主机上)

格式——docker cp  宿主机路径 容器ID:容器路径(将宿主机文件拷贝到容器上)

[root@master ~]# docker cp d85f69c9a79d:/home/test.java /home
Preparing to copy...
Successfully copied 1.536kB to /home

3,Commit镜像

将自己的容器提交创建一个新的镜像

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

-a:提交的作者名字

-m:提交的描述信息

[root@master home]# docker commit -a="authorName" -m="tomcat2.0app" b6cd7b8f9ff8 tomcat02:2.0
sha256:ebd32b10cbed064a89b6d4f9daacbc625eb3f787284460e693423e19dd04a6bd

4,容器数据卷

4.1容器与主机的挂载

作用:可以绑定容器和主机的目录,将容器中的数据备份到主机上,防止删库跑路

使用这个命令来挂载

docker run -it -v 容器外根目录:容器内根目录

挂载完了之后可以使用inspect命令查看容器详细信息

docker inspect 容器id

Mounts就是挂载的信息,Source是宿主机路径,Destination是容器内路径

如果停止运行容器后,修改主机上的文件,一样可以同步容器内文件的数据。如果将容器删除,挂载到主机上的数据卷依旧没有丢失,发现这可以实现容器数据持久化的功能

4.2,具名挂载和匿名挂载

使用命令后可以查看所有volume的信息

docker volume ls

我们发现这里全是匿名挂载,当我们需要具名挂载时,我们在-v后面写参数时,冒号前写我们的具名名字(注意:具名名字前不要加斜杠,否则就表示路径),后面写我们的挂载目录。

接着使用docker volume ls命令查看,发现我们具名挂载已经成功了

 我们使用docker volume inspect centos01volume(具名名字)的命令来查看我们的数据卷

发现我们所有docker容器内的卷,没有指定目录的情况下都在/var/lib/docker/volumes下

4.3,容器与容器的挂载

 docker run 容器1 --volumes-from 容器2

创建运行两个容器,然后使用命令后,就可以实现两个容器的数据同步了(注意:测试时注意两个容器的端口不要冲突)

5,万能命令

--help

假如忘了run命令怎么使用,可以直接执行docker run --help查看


这就是对docker命令的一些小总结,也是防止自己忘了,可以来看看

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值