Docker容器运行基本命令

Docker容器运行基本命令


docker rmi 删除镜像

# 根据 ID 删除,也可以同时指定多个 ID
docker rmi -f  IMAGE ID
# 递归删除所有镜像docker rmi -f $(docker images -aq)


新建容器并启动

docker run [可选参数] image      # 参数说明--name="Name" 容器名称 tomcat01 tomcat02 用来区分容器
-d	后台方式运行
-it	使用交互方式运行,进入容器查看内容
-P	指定容器的端口 -p 8080:8080
	-p ip:主机端口:容器端口
	-p 主机端口:容器端口 (常用的)
	-p 容器端口
    -p 随机指定端口 
# 测试  启动并进入容器
[root@VM_0_15_centos ~]# docker run -it centos /bin/bash
r# 查看运行中的容器docker ps

查看日志

docker logs -tf --tail 10 容器 ID
-tf	                        # 显示日志
--tail number                     # 显示日志的条数


查看容器中进程的信息 ps

docker top 3e77e2715543

查看镜像的元数据

docker inspect 容器id

进入当前正在运行的容器 (exec)

docker exec -it 容器id
[root@VM_0_15_centos ~]# docker exec -it 3e77e2715543 /bin/bash

docker attach 容器Id  # 进入当前正在进行的命令行

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



从容器内拷贝文件到主机上

docker cp ed828f6c65d8:/home/a.java /home/docker/

docker cp 容器ID:/源文件目录  /本地目录


查看Docker容器内存

docker stats




Docker 镜像讲解

镜像是什么??

镜像是一种轻量级,可执行的独立软件包,用来打包软件运行环境 和 基于运行环境开发的软件

所有的应用,直接打包 docker 镜像,就可以直接跑起来

如何得到镜像:

  • 从远程仓库下载

  • 朋友拷贝给你

  • 自己制作一个镜像 DockerFile


Docker 镜像加载原理

UnionFS (联合文件系统)

Docker 的镜像实际由一层一层的文件系统组成,这种层级的文件系统 UnionFS

虚拟机分钟级启动

容器是秒级启动

  提交镜像

commit 镜像

docker commit 提交容器成为一个新的副本

# 同 git
docker commit -m='描述提交的信息' -a="作者" 容器 id 目标镜像名:[TAG]

实战测试

# 启动一个默认的 tomcat

# 发现这个默认的 tomcat 是没有 webapss应用, webapss 是没有文件的

# 我将文件进行了 拷贝

# 将我们操作过的容器通过 commit 提交作为一个镜像! 我们以后使用我没呢修改过的镜像即可
docker commit -a="Gorit" -m="add webapps" images ID 修改过的容器名称:1.0

[root@xm-cloud ~]# docker commit -m='test' -a='xm-cloud.cn' 9f2e8799f824 1.0
sha256:c37b3fc7e30830f1d7b03fe11a7ef826d9b44569d0e6768377dc0b76d8bc1168
[root@xm-cloud ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
1.0                 latest              c37b3fc7e308        3 seconds ago       72.9MB
ubuntu              latest              d70eaf7277ea        4 weeks ago         72.9MB


保存当前容器的状态,可以通过 commit 提交,获得一个镜像,就好比云服务器的快照

注意:不是上传到Docker官方仓库!!!


容器数据卷

docker 的理念:

  1. 将应用于环境打包成一个镜像

  2. 数据?如果数据都在容器中,那么我们容器删除,数据就会丢失!需求:数据持久化

  3. MySQL,容易删除,删库跑路! 需求:MySQL 数据可以存储在本地!


容器之间有一个可以数据共享的技术! Docker 容器中产生的数据,同步到本地!

这就是卷技术! 目录的挂载,将容器中的目录,挂载在 Linux 上面!

总结:容器的持久化和他同步操作!容器间也是可以数据共享的

使用数据卷

方式一 : 直接使用命令来挂载 -v

docker run -it -v 主机目录: 容器内目录 

# 测试

docker run -it -v /home/ceshi:/home centos /bin/bash

容器之间的同步是双向的,我们以后只需要在本地修改即可,容器自动同步


发表评论:

 陕ICP备18001526号-2