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