Docker-学习之路-对于容器的基本操作

    xiaoxiao2024-12-20  4

    Docker常用命令使用记录

    常用命令表

    Docker 常用命令总结:

    命令用途docker pull获取 imagedocker build创建 imagedocker images列出 imagedocker rmi删除 image (-f 强制删除)docker run运行 containerdoeker stop停止一个 containerdocker ps列出正在运行的 containerdocker rm删除 containerdockre container ls -a列出所有的容器docker container start/restart/stop启动/重新启动/停止 一个容器docker cp在host和container之间拷贝文件docker commit保存改动为新的 imagedocker exec进入某个容器docker system df查看docker 磁盘使用空间docker system prune清理磁盘。删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)

    命令示例

    部分命令具体使用示例。


    运行一个nginx镜像

    1 [root@HJWDEV home]# docker run -p 8080:80 -d nginx

    -p 表示端口映射,把nginx的 80 端口映射到宿主机的 8080 端口

    -d 表示允许该Container作为守护进程来执行

    1 2 [root@HJWDEV home]# docker run --rm -it ubuntu /bin/bash root@3b5c1d1ce739:/#

    --rm 告诉Docker一旦运行的进程退出就删除容器,这在进行测试的时候非常有用

    -it 表示使用分配一个伪终端并进行交互模式,这将进入到容器内部。但不要在生产环境中这样使用

    /bin/bash 要运行的命令,因为我们以交互模式启动,它将显示一个容器的提示符


    列出所有容器

    1 [root@HJWDEV home]# docker ps -a

    包含历史运行过的容器


    删除容器

    1 [root@HJWDEV home]# docker rm 81b27f371312

    表示删除指定的容器 81b27f371312为容器的 CONTAINER ID,在使用ps列出容器时可以看到。

    1 docker rm $(docker ps -a -q)

    表示删除所有容器

    空间清理

    1 2 3 4 5 6 7 docker system prune WARNING! This will remove: - all stopped containers - all networks not used by at least one container - all dangling images - all dangling build cache Are you sure you want to continue? [y/N] y

    表示清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像),可以使用这个命令清理Docker 所占用的空间。

    参数:

    -a 表示清除所有没有容器引用的镜像,慎用!


    停止某个容器

    1 [root@HJWDEV home]# docker stop 0af0575bb931

    停止容器 0af0575bb931

    复制成功

    1 docker stop $(docker ps -a -q)

    停止所有容器


    启动一个容器

    1 [root@HJWDEV docker]# docker container start a79bf9126f4c

    会以原来的方式启动这个容器


    修改容器

    在home目录下新建一个index.html文件,并写入简单内容:

    1 2 [root@HJWDEV home]# touch index.html [root@HJWDEV home]# vi index.html

    将index.html文件复制到 nginx 容器的指定目录下,则容器显示的首页会是我们上面写入的内容。

    1 [root@HJWDEV home]# docker cp index.html 0af0575bb931://usr/share/nginx/html

    在重新启动该容器后,这个更改失效,因为Dockers在容器内做的改动都是暂时的,如需要保存则使用提交命令:

    1 [root@HJWDEV home]# docker commit -m 'fun' 0af0575bb931 nginx-fun

    表示将0af0575bb931容器的改动进行提交 ,-m则表示提交时添加的注释,当我们进行提交时会生成一个新的image,这里指定新镜像的名称为nginx-fun,如不指定名称则为

    提交完成后可以通过 docker images 命令查看是否生成了一个新的image,启动这个新image得到的内容则会是我们上面更改的index.html的内容


    进入容器

    1 2 docker exec -it nginx-fun /bin/bash root@15f556dcc7e5:/#

    只用 -i 参数时,由于没有分配伪终端,界面没有我们熟悉的 Linux 命令提示符,但命令执行结果仍然可以返回。

    当 -i -t 参数一起使用时,则可以看到我们熟悉的 Linux 命令提示符。

     

    文章作者: HJW

    文章链接: https://hjwjw.gitee.io/posts/eae2c9c8/

    转载来自 HJW's Blog!

    最新回复(0)