Docker常用命令

首先下载一个基础镜像rhel7

【1】搜索可用的镜像

[root@random docker-ce]# docker search rhel7
NAME                                     DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
richxsl/rhel7                            RHEL 7 image with minimal installation          14                               
......

【2】下载镜像

[root@random docker-ce]# docker pull richxsl/rhel7
Using default tag: latest
latest: Pulling from richxsl/rhel7
1de5db95c595: Pull complete 
Digest: sha256:8f3aae325d2074d2dc328cb532d6e7aeb0c588e15ddf847347038fe0566364d6
Status: Downloaded newer image for richxsl/rhel7:latest
[root@random docker-ce]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
httpd               latest              2a51bb06dc8b        3 days ago          132MB
richxsl/rhel7       latest              9c7b3825758a        3 years ago         245MB

【3】镜像管理

docker   search   image_name  #在镜像库中搜索名字中包含image_name的镜像。

docker   pull         image_name  #从镜像库中拉取镜像image_name。

docker   push       image_name  #将本地的镜像image_name上传到镜像库。

docker   images                            #查看本地的镜像列表。

docker   save   -o   image_name.tar   image_name      #将本地的镜像image_name保存为image_name.tar文件。

docker   rmi         image_name   #删除镜像image_name,删除后通过docker  images将不能看到image_name。

【4】容器管理

创建容器

docker   run   --name=con_name   images   #--name后面接docker容器的名称,自己根据习惯起,最后的images为本地的镜像,也就是可以通过docker   images查看到的镜像。

docker    run 后面常用的参数及说明:


  -d                                   # 指定容器运行于前台还是后台,默认为false   
  -i                                    #打开STDIN,用于控制台交互。
  -t                                    #分配tty设备,该可以支持终端登录,默认为false,常与-i一起使用。  
  -u                                   #指定容器的用户  
  -w                                  #指定容器的工作目录 
  -p                                  #指定容器暴露的端口

注:-p 参数说明

-p     hostPort:containerPort    #将容器端口映射到主机端口,如8080:80表示把容器的80端口映射为主机的8080端口,因此在主机的8080端口就可以访问到容器的服务。

  -h                                 # 指定容器的主机名

  -v                                 #给容器挂载存储卷,挂载到容器的某个目录  

--net="bridge"             #容器网络设置:

参数说明:
bridge                                  #使用docker daemon指定的网桥     
host                                      #容器使用主机的网络  
container:NAME_or_ID    #使用其他容器的网路,共享IP和PORT等网络资源  
none                                    #容器使用自己的网络(类似--net=bridge),但是不进行配置
 

  --restart="no"            #指定容器停止后的重启策略:

参数说明:
 no                                       #容器退出时不重启  
on-failure                           #容器故障退出(返回值非零)时重启 
always                               #容器退出时总是重启

通过docker  run 运行容器后会用到的一些命令:

docker  ps:

docker   ps    #查看运行的容器。

[root@random docker-ce]# docker ps
CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS              PORTS                  NAMES
5381a6c11fb7        httpd               "httpd-foreground"   2 hours ago         Up 2 hours          0.0.0.0:8080->80/tcp   my-apache-app

docker   ps   -a    #显示所有的容器,包括未运行的容器。

docker   ps   -q    #只显示容器ID。

[root@random docker-ce]# docker ps -q
5381a6c11fb7

docker   ps   -l     #显示最近创建的容器。

docker   port   con_id   #查看容器ID为con_id的容器端口映射情况。

[root@random docker-ce]# docker port 5381a6c11fb7
80/tcp -> 0.0.0.0:8080

docker   logs   -f   con_name   #动态查看容器日志。

[root@random docker-ce]# docker logs -f my-apache-app
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
[Mon Nov 19 09:54:20.040538 2018] [mpm_event:notice] [pid 1:tid 139650001200320] AH00489: Apache/2.4.37 (Unix) configured -- resuming normal operations
[Mon Nov 19 09:54:20.041124 2018] [core:notice] [pid 1:tid 139650001200320] AH00094: Command line: 'httpd -D FOREGROUND'
172.17.0.1 - - [19/Nov/2018:09:54:30 +0000] "GET / HTTP/1.1" 200 12
172.17.0.1 - - [19/Nov/2018:09:54:30 +0000] "GET /favicon.ico HTTP/1.1" 404 209

docker   attach     con_name   #进入容器con_name。

docker   commit将运行的镜像保存为另一个镜像:

docker commit [OPTIONS]  CONTAINER  [REPOSITORY[:TAG]]

options可以使用的参数:

-a :提交的镜像作者;

-c :使用Dockerfile指令来创建镜像;

-m :提交时的说明文字;

-p :在commit时,将容器暂停。

docker  history   image_name    #查看镜像操作历史,下面看一个例子:

通过docker  commit保存镜像,-m指定描述为test,更改人为random,新容器名称为test,tag为1。
[root@random docker-ce]# docker commit -m "test" -a random 5381a6c11fb7  test:1
sha256:44b620d93d68a83e307560158ef592e6ae4ab51c0516a076d50805f160fb6425

查看本地镜像,可以看到镜像test的tag为1。
[root@random docker-ce]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
test                1                   44b620d93d68        4 minutes ago       132MB
httpd               latest              2a51bb06dc8b        3 days ago          132MB
richxsl/rhel7       latest              9c7b3825758a        3 years ago         245MB

查看镜像test的历史,可以看到最近的一次更改在5分钟前。
[root@random docker-ce]# docker history 44b620d93d68
IMAGE               CREATED           CREATED BY              SIZE             COMMENT
44b620d93d68        5 minutes ago     httpd-foreground        2B               test
               

docker  inspect   con_name 查看容器最基本的信息。

docker  exec命令,在容器外运行容器命令:

命令格式为:

docker  exec  [options]  con_name   command [arg1,arg2,arg3.....]

options说明:

-d :分离模式: 在后台运行

-i :即使没有附加也保持STDIN 打开

-t :分配一个伪终端

容器的启动和关闭:

docker   start       con_name    #启动容器。

docker   restart   con_name    #重启容器。

docker   stop      con_anme    #关闭容器。

docker  create   [options]   image  [command]  [arg1,arg2,arg3....]  这个命令语法与docker  run相同,但是它只创建容器,并不启动容器。

docker  rm  con_name    #用来删除容器。

docker  rm  `docker  ps  -qa`  #删除所有容器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值