Docker对容器和镜像的常见操作指令

docker对容器的操作指令

docker ps                  # 查看正在运行的容器
docker ps -a               # 查看所有容器状态 
docker commit              # 提交数据,提交的越多,镜像层越多
docker cp                  # 拷贝
docker exec                # 在容器内部执行命令
docker port                # 查看端口
docker rename              # 给容器重命名 
docker stack               # 查看状态
docker ps -aq              # 查看所有容器id
docker run -it --name vm1 ubuntu   # 创建容器,交互模式
docker attach vm1          # 进入后台运行的容器
docker top vm1             # 连接容器
docker logs vm1            # 查看容器指令输出,用来做安全审计 , -f 参数可以实时查看
docker inspect vm1         # 查看容器详情
docker stats vm1           # 查看容器资源使用率
docker diff vm1            # 查看容器的变更
docker stop vm1              # 停止容器
docker start vm1             # 启动容器
docker kill vm1              # 强制干掉容器
docker restart vm1           # 重启容器
docker pause/unpause vm1     # 暂停/恢复容器
docker rm/rmi  vm1           # 删除容器
docker export vm1 > vm1.tar  # 导出容器
docker import vm1.tar image  # 导入容器为镜像 image
docker history               # 查看镜像的编译历史
docker port vm1              # 查看端口映射



docker load                  # 加载镜像
docker network               # 查看网络

docker对镜像的操作指令

docker images	           # 显示镜像列表
docker history	  镜像名         # 显示镜像构建历史
docker commit	 容器名   镜像名         # 由容器创建镜像
docker build -t 镜像名:版本号	.      # 从Dockerfile构建镜像
docker tag	               # 给镜像打标签
docker search	    镜像名       # 搜索镜像
docker pull	      镜像名:版本         # 从仓库拉取镜像
docker push	     镜像名          # 上传镜像到仓库
docker rmi	     镜像名/镜像id          # 删除镜像

拉取镜像,没有指定版本会自动下载最新版本

[root@su1 docker]# docker pull ubuntu
Using default tag: latest
latest: Pulling from library/ubuntu
7ddbc47eeb70: Pull complete 
c1bbdc448b72: Pull complete 
8c3b70e39044: Pull complete 
45d437916d57: Pull complete 
Digest: sha256:6e9f67fa63b0323e9a1e587fd71c561ba48a034504fb804fd26fd8800039835d
Status: Downloaded newer image for ubuntu:latest

查看docker中的镜像

root@su1 docker]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              775349758637        2 days ago          64.2MB
busybox             latest              020584afccce        3 days ago          1.22MB
game2048            latest              19299002fdbe        2 years ago         55.5MB
下载的镜像和宿主机架构相同
[root@su1 docker]# docker run -it --name vm1 ubuntu
root@f4d6e6f9fb9f:/# uname -r
3.10.0-862.el7.x86_64
[kiosk@foundation34 Desktop]$ uname -r
3.10.0-514.el7.x86_64

如何运行docker镜像

[root@su1 docker]# docker run -it --name vm2 ubuntu
root@521cca4890a7:/# exit ##exit直接退出,退出时停止了容器
exit

exit退出后如何启动docker镜像(启动在后台)

[root@su1 docker]# docker start vm2
vm2

启动镜像后如何进入在后台运行的镜像

[root@su1 docker]# docker attach vm2
root@521cca4890a7:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mn

ctrl +pq退出刚开启的ubuntu,后台运行

[root@su1 docker]# docker ps  ##查看正在运行容器的状态,exit退出的不会显示,ctrl+pq退出的会显示
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
f4d6e6f9fb9f        ubuntu              "/bin/bash"         8 minutes ago       Up 8 minutes                            vm1
[root@su1 docker]# docker ps -a ##查看所有容器的状态
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
521cca4890a7        ubuntu              "/bin/bash"              28 minutes ago      Exited (0) 28 minutes ago                       vm2
f4d6e6f9fb9f        ubuntu              "/bin/bash"              36 minutes ago      Up 36 minutes                                   vm1

如何将改写后的docker容器打包镜像

[root@su1 docker]# docker run -it busybox ##--name是指定运行docker容器的名称,如果不加会自动生成一个名称
/ # touch file1
/ # ls
bin    dev    etc    file1  home   proc   root   sys    tmp    usr    var
/ # exit
[root@su1 docker]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS                            PORTS               NAMES
85515670dd60        busybox             "sh"                     About a minute ago   Exited (0) 30 seconds ago                             awesome_swirles
521cca4890a7        ubuntu              "/bin/bash"              40 minutes ago       Exited (127) About a minute ago                       vm2
f4d6e6f9fb9f        ubuntu              "/bin/bash"              About an hour ago    Exited (0) 8 minutes ago                              vm1
[root@su1 docker]# docker images ##目前docker镜像
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              775349758637        2 days ago          64.2MB
busybox             latest              020584afccce        3 days ago          1.22MB
game2048            latest              19299002fdbe        2 years ago         55.5MB
[root@su1 docker]# docker commit awesome_swirles test:v1 ##指定要创建新的镜像的名称
sha256:acbcbfaaaff54d66eb2e4ad86f1b3d558fbf1afe3cdee867d34a0807569402d6
[root@su1 docker]# docker images  
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
test                v1                  acbcbfaaaff5        2 seconds ago       1.22MB
ubuntu              latest              775349758637        2 days ago          64.2MB
busybox             latest              020584afccce        3 days ago          1.22MB

如何删除容器

[root@su1 docker]# docker  ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                       PORTS               NAMES
521cca4890a7        ubuntu              "/bin/bash"              About an hour ago   Exited (127) 7 minutes ago                       vm2
f4d6e6f9fb9f        ubuntu              "/bin/bash"              About an hour ago   Exited (0) 15 minutes ago                        vm1
b2d4439469b5        game2048            "/bin/sh -c 'sed -i …"   17 hours ago        Exited (137) 17 hours ago                        game1
[root@su1 docker]# docker rm f4d6e6f9fb9f ##删除未在运行的docker
f4d6e6f9fb9f
[root@su1 docker]# docker  ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                       PORTS               NAMES
521cca4890a7        ubuntu              "/bin/bash"              About an hour ago   Exited (127) 8 minutes ago                       vm2
b2d4439469b5        game2048            "/bin/sh -c 'sed -i …"   17 hours ago        Exited (137) 17 hours ago                        game1


[root@su1 docker]# docker start vm2
vm2
[root@su1 docker]# docker rm 521cca4890a7 
Error response from daemon: You cannot remove a running container 521cca4890a70e66a9c42e7cec1cfb07f2e4215ec226af6c23e2487904337ed4. Stop the container before attempting removal or force remove
[root@su1 docker]# docker rm -f 521cca4890a7 ##删除正在运行的docker容器
521cca4890a7

查看镜像创建的历史
镜像层+容器层

[root@su1 docker]# docker  ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
b2d4439469b5        game2048            "/bin/sh -c 'sed -i …"   17 hours ago        Exited (137) 17 hours ago                       game1
[root@su1 docker]# docker history  game2048  
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
19299002fdbe        2 years ago         /bin/sh -c #(nop)  CMD ["/bin/sh" "-c" "sed …   0B                  
<missing>           2 years ago         /bin/sh -c #(nop)  EXPOSE 80/tcp                0B                  
<missing>           2 years ago         /bin/sh -c #(nop) COPY dir:cb74e9c037a3d501c…   600kB               
<missing>           2 years ago         /bin/sh -c #(nop)  MAINTAINER Golfen Guo <go…   0B                  
<missing>           2 years ago         /bin/sh -c #(nop)  CMD ["nginx" "-g" "daemon…   0B                  
<missing>           2 years ago         /bin/sh -c #(nop)  EXPOSE 443/tcp 80/tcp        0B                  
<missing>           2 years ago         /bin/sh -c #(nop) COPY file:d15ceb73c6ea776c…   1.1kB               
<missing>           2 years ago         /bin/sh -c #(nop) COPY file:af94db45bb7e4b8f…   643B                
<missing>           2 years ago         /bin/sh -c GPG_KEYS=B0F4253373F8F6F510D42178…   50.1MB              
<missing>           2 years ago         /bin/sh -c #(nop)  ENV NGINX_VERSION=1.11.7     0B                  
<missing>           3 years ago         /bin/sh -c #(nop)  MAINTAINER NGINX Docker M…   0B                  
<missing>           3 years ago         /bin/sh -c #(nop) ADD file:7afbc23fda8b0b387…   4.8MB  

docker容器可以是一个环境,一个应用程序
执行完命令之后就退出

[root@su1 dockerwork]# docker run ubuntu ls ##查看根目录下的文件
bin
boot
dev
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var


[root@su1 dockerwork]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
3512dfee7380        ubuntu              "ls"                11 seconds ago      Exited (0) 9 seconds ago                       jovial_shtern
[root@su1 dockerwork]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

两种方式进入docker

不打开新的终端

[root@su1 dockerwork]# docker run -it --name vm1 ubuntu
root@53c1057d16c8:/# exit


[root@su1 nginx]# docker run -d rhel7 /bin/bash -c "while true;do sleep 1;echo hello;done"
680de05aae5ea7a9bacca8e57e1bb6a795f2c3155908a72aaf03e5feb4a52617


[root@su1 nginx]# docker attach 680de05aae ##当不打开新的终端进入docker容器,会一直占用终端,执行之前的循环命令
hello
hello
hello
hello

在宿主机上停止容器
[root@su1 dockerwork]# docker stop 680de05aae
680de05aae

exec打开新的终端

[root@su1 nginx]# docker start 680de05aae5e
680de05aae5e

[root@su1 nginx]# docker exec -it  680de05aae bash
bash-4.2# ls
bin  boot  dev	etc  home  lib	lib64  media  mnt  opt	proc  root  run  sbin  srv  sys  tmp  usr  var
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值