大兵是
一个想全能的运维

Docker常用命令

    今天我们来分享一下docker常用的命令。

查看镜像

[root@docker1 ~]# docker images
REPOSITORY                        TAG                 IMAGE ID            CREATED             SIZE
dabing/lnp                        v5                  d92e5883dec4        7 hours ago         786.3 MB
harbor.dabing.com/dabing/lnp      latest              d92e5883dec4        7 hours ago         786.3 MB

从公网上获得镜像

[root@docker1 ~]# docker pull centos

导出一个镜像

[root@docker1 ~]# docker save -o centos.tar centos
[root@docker1 ~]# ll
total 1143528
-rw-------. 1 root root      1240 Mar 11 17:27 anaconda-ks.cfg
-rw-------  1 root root 199901696 Mar 12 22:19 centos.tar

导入一个镜像

[root@docker1 ~]# docker load --input centos.tar
[root@docker1 ~]# docker load < centos.tar

删除一个镜像

[root@docker1 ~]# docker rmi d92e5883dec4
[root@docker1 ~]# docker rmi centos:latest
#当镜像已经建立了镜像,镜像不能被删除。

启动一个容器

[root@docker1 ~]# docker run --name mydocker -it centos /bin/bash
#dock参数命令
#run:运行
#--name:容器名称
#-t:让docker分配一个伪终端
#-i:将docker的标准输入打开
#-d:后台运行 
#--rm:退出容器后,自动删除
#-p:指定端口映射
#-P:随机端口映射
#-v:指定数据卷
#--volumes-from:数据卷共享
#centos:镜像名称,镜像名称,在所有参数的后面

查看所有的容器,包括未运行的

[root@docker1 ~]# docker ps -a #不加-a参数的话,只显示正在运行的

启动一个容器

[root@docker1 ~]# docker start [容器名称 | 容器id]

获取一个容器的PID

[root@docker1 ~]# docker inspect -f "{{.State.Pid}}" lb01
112368

进入一个容器

[root@docker1 ~]# nsenter -t 112368 -m -u -i -n -p
#进入这个容器是使用的新的bash进程,不是容器自己的进程,退出时不会结束进程。推荐用这个。
[root@docker1 ~]# docker attach mydocker
#退出时会关闭容器。
[root@docker1 ~]# docker exec -it mydocker /bin/bash
#进入容器方法3

进入容器脚本

[root@docker1 ~]# cat docker_in.sh 
#/bin/bash
#Use nsenter to access docker
docker_in(){
  NAME_ID=$1
  PID=$(docker inspect -f "{{ .State.Pid }}" ${NAME_ID})
  nsenter -t $PID -m -u -i -n -p
}
docker_in $1

不进入让容器执行命令

[root@docker1 ~]# docker exec web01 netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      9/nginx: master pro 
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      11/php-fpm: master  

删除容器

[root@docker1 ~]# docker rm -f lb01
#加上-f参数可以删除正在运行中的容器
[root@docker1 ~]# docker rm -f `docker ps -a -q`
#这条命令可以帮助你快速的删除所有的容器。

查看logs

[root@docker1 ~]# docker logs tomcat01

将容器提交为镜像

[root@docker1 ~]# docker commit -m "supervisord start nginx and php" 9cff9d76ed93 dabing/lnp:v1
#9cff9d76ed93:容器id

打赏

未经允许不得转载: » Docker常用命令

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)