当前位置:网站首页 > 容器化与Kubernetes > 正文

docker启动所有容器命令(docker启动容器命令行)



使用Docker已有一段时间了,今天正好有空梳理下自己平时操作Docker时的一些命令和注意细节:

Docker 命令帮助

windows docker进入命令行 进去docker容器命令_windows docker进入命令行

譬如下面一例:
[root@localhost volume2]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9cb07559cc17 docker.io/ubuntu "/bin/bash" 22 hours ago Up 22 hours   naughty_bartik
[root@localhost volume2]# docker export gigantic_goldwasser > wanghui.tar
[root@localhost volume2]# docker import wanghui.tar wanghui:v1
sha256:b6cbbaf69a58149f337dcc439a21ed185dcdf96fd7f72ddf45e102d27f47c4ae
[root@localhost volume2]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
  wanghui v1   b6cbbaf69a58 5 seconds ago 450.9 MB
[root@localhost volume2]# docker run -i -t wanghui:v1 /bin/bash
[root@78f4ac39972d /]# ps -ef

windows docker进入命令行 进去docker容器命令_windows docker进入命令行

Docker option

Docker run指令

Docker容器识别

注意一点:当利用 docker run 来创建容器时,Docker 在后台运行的标准操作包括:

列出当前所有正在运行的容器


参数:
-m参数用来来指定提交的说明信息;
-a可以指定用户信息的;
6s56d43f627f3代表的时容器的id;
birdben/ubuntu:v1指定目标镜像的用户名、仓库名和 tag 信息。

限制docker容器日志文件的大小
启动容器时,可以通过参数设置日志文件的大小、日志文件的格式。


参数:
-t为构建的镜像制定一个标签,便于记忆/索引等
. 指定Dockerfile文件在当前目录下,也可以替换为一个具体的 Dockerfile 的路径。

参数:
-d:表示以“守护模式”执行,日志不会出现在输出终端上。
-i:表示以“交互模式”运行容器,-i 则让容器的标准输入保持打开
-t:表示容器启动后会进入其命令行,-t 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上
-v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>,-v 标记来创建一个数据卷并挂载到容器里。在一次 run 中多次使用可以挂载多个数据卷。
-p:表示宿主机与容器的端口映射,此时将容器内部的 22 端口映射为宿主机的 9999 端口,这样就向外界暴露了 9999 端口,可通过 Docker 网桥来访问容器内部的 22 端口了。
注意:
这里使用的是宿主机的 IP 地址:10.211.55.4,与对外暴露的端口号 9999,它映射容器内部的端口号 22。ssh外部需要访问:ssh root@10.211.55.4 -p 9999
不一定要使用“镜像 ID”,也可以使用“仓库名:标签名”

根据镜像启动容器的时候,如果镜像的TAG是latest,那么就直接跟镜像名就行了;如果TAG不是latest,那么镜像后面要跟上这个TAG标识。如下:

注意:创建应用容器时,一般做端口映射,为了让外部能够访问这些容器里的应用。可以通过-P或-p参数来指定端口映射

删除容器和镜像

Docker本机和容器之间的文件拷贝:

镜像的存出和载入(可以将本机下载的镜像导出,然后将导出文件上传到别的机器上,在别的机器上进行镜像导入)

容器的导出和导入(可以依据导出的容器快照导入为镜像,在本地或将容器快照文件上传到别的机器上进行导入镜像操作都可以)

比如说我在A机器上有个nginx容器,现在要在B机器上启动一个一模一样的nginx容器(或者说将A机器上的nginx容器拿到B机器上),方法有下面两种:

在运行状态中的容器内再次启动新的进程(docker exec)

-----------------------------------------------------------------------------------------------------------一般来说,容器创建后的主机名都是随机生成的一串字符。DNS也是默认和宿主机一样的(/etc/resolv.conf)
容器创建后,登陆容器是无法修改主机名或DNS配置的,会报错说:需要root权限才能修改!
其实容器的主机名或DNS配置是可以在容器创建的时候手动指定的:

Docker容器登陆的方法:
具体参考:Docker容器学习梳理--容器登陆方法梳理(attach、exec、nsenter)

查看docker中对应容器的IP

docker inspect 命令:显示更底层的容器或image信息(docker inspect images_id/container_id 查看镜像或容器信息)

特别注意一个细节:

---------------------------------------------------无法删除状态为Dead的容器---------------------------------------------------
docker中有两个status为dead的容器,删除时报错如下:
Error response from daemon: Driver devicemapper failed to remove root filesystem 33ddd2513fc3cb732fa02e912bed8d028abefa945d8a3984d700a4d74: Device is Busy

解决办法:
1)看容器进程是否已经杀掉。没有的话,可以手动杀死。
2)mount -l看是不是该容器的路径还在挂载状态。是的话,umount掉。
3)然后再次尝试docker rm container_id
尽量不要手动去移除dm和docker里面container的相关文件,以免造成垃圾数据。
4)尝试docker rm -f <container-id>,强制删除
这样可以删除掉docker daemon中的container信息(但是已经创建的dm还是ACTIVE的,所以还要再去把dm给删除了)

---------------------------------------------------容器启动失败错误1---------------------------------------------------

---------------------------------------------------容器启动失败错误2---------------------------------------------------

---------------------------------------------------容器yum不能使用--------------------------------------------------

==============关于docker容器和镜像以及文件的几个转化关系==============

-------------------------------------基于centos7的docker容器出现的一个bug--------------------------------------

* 当你发现自己的才华撑不起野心时,就请安静下来学习吧!*

到此这篇docker启动所有容器命令(docker启动容器命令行)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • docker启动全部容器(docker启动容器后服务没起来)2024-12-31 07:00:09
  • docker容器的启动过程(docker 容器启动参数)2024-12-31 07:00:09
  • list转为字符串并换行(list转化为字符串)2024-12-31 07:00:09
  • kubernetes 配置文件(kubernetes文档)2024-12-31 07:00:09
  • autokey密码转化(auto uninstaller密钥生成器)2024-12-31 07:00:09
  • crsed汉化(crsed有中文吗)2024-12-31 07:00:09
  • kvm虚拟化分为哪三层(kvm虚拟化和其他的虚拟化的优缺点是什么)2024-12-31 07:00:09
  • KVM虚拟化技术(kvm虚拟化技术:实战与原理解析)2024-12-31 07:00:09
  • docker-compose升级(docker-compose更新容器)2024-12-31 07:00:09
  • kubelet配置文件位置(kubernetes配置)2024-12-31 07:00:09
  • 全屏图片