docker常用命令

docker安装:https://www.cnblogs.com/xioawu-blog/p/11818417.html

 

 

镜像管理:

载入镜像

  docker pull  centos /ubuntu

查看已拉取的镜像

  docker image ls 

或 docker images

删除镜像

  docker rmi  image id

  docker rmi  image id1  image_id2

删除所有镜像

  docker rmi $(docker images -q)

使用镜像启动一个容器,参数为以命令行模式进入该容器:

docker run -it centos /bin/bash

  • -i: 交互式操作。
  • -t: 终端。
  • ubuntu: ubuntu 镜像。
  • /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
  • -d: 让容器在后台运行
  • -P: 将容器内部使用的网络端口随机映射到我们使用的主机上。
  • --name: 为容器命名。

 

 启动容器:

启动容器,并命名为Centos7:

docker run -it --name Centos7 centos /bin/bash

 

后台运行,加了 -d 参数默认不会进入容器:

docker run -itd --name ubuntu-test ubuntu /bin/bash

 

问题:在docker容器中使用systemctl 命令报错

原因:默认情况下,在第一步执行的是/bin/bash,而docker中的bug,无法使用systemctl
   所以使用/usr/sbin/init同时添加--privileged=true参数就能够使用systemctl了,

     但覆盖了默认的/bin/bash,因此我们想进入容器就不能使用docker attach了;而只能使用docker exec -it <dockername> /bin/bash

解决:运行容器时添加--privileged=true,修改/bin/bash/usr/sbin/init;

   docker run -itd --name nginxv2 --privileged=true centos /usr/sbin/init

     docker exec -it nginxv2 /bin/bash

 

要退出终端,直接输入 exit:

 

进入容器:

docker attach 29db244aa653/ Python(CONTAINER ID/NAMES):   退出容器,会导致容器停止 ,通过容器Id或者name都可以操作容器

docker exec -it 243c32535da7 /bin/bash     (退出容器,容器不会停止。)

 

查看容器:

docker  ps -a       查看所有容器

docker ps            查看up状态的容器

 dockers ps -n 2     查看最近创建的2个容器

 

停止容器:

docker stop b750bbbcfd88 

 停止所有容器:docker stop $(docker ps -a -q)  

 

启动一个已经停止的容器:

docker start  b750bbbcfd88 

 

删除容器:

docker rm -f 1e560fca3906

 删除所有容器:docker rm $(docker ps -a -q)

 

获取容器详细信息:

docker inspect <CONTAINER ID> / <NAMES>

 

导出导入容器:

导出: docker export 1e560fca3906 > ubuntu.tar

导入:cat  /root/ubuntu.tar | docker import - test/ubuntu:v1

   docker import http://example.com/exampleimage.tgz example/imagerepo

 

posted on 2021-05-28 18:27  凌风子  阅读(58)  评论(0编辑  收藏  举报