Docker命令
2024-01-08 00:29:03
Docker容器的启动
docker run hello-world
启动流程:
查找本地的容器
docker ps -a
容器运行的本质
Docker容器存在的意义就是为了运行容器中的应用,对外提供服务,所以启动容器的目的就是启动运行该容器中的应用。容器中的应用运行完毕后,容器就会自动终止。所以,如果不想让容器启动后立即终止运行,就需要使容器应用不能立即结束。通常采用的方式有两种,使应用处于与用户交互的状态或等待状态。
以交互的方式运行
docker run --name myubuntu -it ubuntu /bin/bash
docker run --name mytom -it tomcat:8.5.49 /bin/bash
端口映射
docker run --name mytom3 -it -p 8081:8080 tomcat:8.5.49
//端口为8080映射到宿主机上为8081 -p 8081:8080
docker run --name mytom5 -it -P tomcat:8.5.49//让系统分配端口
为什么需要端口映射?
因为每一个docker容器都相当于一个操作系统,假设我要启动tomcat,tomcat的默认端口号是8080,但由于我是在不同的容器启动的tomcat,自然不会发生端口冲突,但是这都只是在容器当中的,当用户需要访问8080的tomcat的时候,宿主机应该去找哪个容器呢?所以就需要端口映射。
随机端口
分配的端口为32768
。
如何退出
Ctrl+p+q
依旧正在运行。
以守护进程方式运行
docker run --name myubuntu -d ubuntu /bin/bash
对高版本tomcat的访问
docker run --name mytom6 -p 8081:8080 -it tomcat:8.5.50
为什么找不到?
因为webapps当中根本没有东西。
内容都在webapps.dist当中了。
docker exec -it mytom1 /bin/bash //进入容器
mv webapps.dist/* webapps //把dist下的所有文件移动到webapps中
docker top
用于查看有哪些容器在运行
docker top mytom1
Docker启停命令
启动
docker start xxx
docker unpause xxx
重启
docker restart xxx
停止
docker stop xxx
docker pause xxx //暂停对外提供服务
强制停止
docker kill xxx
暂停所有正在运行的容器
docker stop $(docker ps -q)
docker kill $(docker ps -q)
docker ps -q 用于输出所有正在运行的容器的ID
docker cp
docker cp test.txt mytom1:/root //宿主机拷贝到容器
docker cp mytom1:/root/test.txt ./ //容器拷贝到宿主机
但是不支持容器之间的拷贝
docker rm
docker rm -f $(docker ps -aq)
docker ps -aq:查询并显示所有(包括未运行的)Docker 容器的唯一标识符(ID)
docker commit
docker commit -a "Hayaizo" -m "Added net-tools" mycentos centos7:net-tools
容器的导入导出
docker export导出
docker export -o tom8-export.tar mytom
docker import导入
docker import tom8-export.tar tom8:export
为什么会比原来的镜像要小?
因为丢弃了原镜像的所有历史记录与元数据
容器/镜像的导出和导入的区别
export与save
- export作用于容器,save作用于镜像,但是他们导出的结果都为tar文件
- export一次只能对一个容器进行导出,save一次可以对多个镜像进行导出
- export只是对当前容器的文件系统快照进行导出,其会丢弃原镜像的所有历史数据信息,save则是保存了原镜像的完整记录
import和load
- import导入的容器包,load加载的是镜像包,但最终都会恢复为镜像
- import恢复为的镜像只包含当前镜像一层,load恢复的镜像与原镜像的分层完全相同
- import恢复的镜像是新构建的镜像,与原镜像的Image ID不同,load恢复的镜像与原镜像是同一个镜像,Image ID相同
- import可以为导入的镜像指定
<repository>
与<tag>
,而load加载的镜像不能指定,和原镜像保持一致。
commit和export
- 相同点:docker export + docker import 会将一个容器变为一个镜像,docker commit 也可以将一个容器变为一个镜像。
- 不同点:docker export + docker import 恢复的镜像仅包含原容器生成的一层分层,docker commit生成的镜像中包含容器的原镜像的所有分层的信息。
docker system
docker system df //查看docker磁盘使用情况
docker system events //相当于日志
docker system info //信息
docker system prune //移除所有没有这个镜像相应的容器存在
docker create
docker create --name mytom -p 8081:8080 tomcat:8.5.49
create仅仅创建容器,不启动。
文章来源:https://blog.csdn.net/2301_79516932/article/details/135394797
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!