镜像操作
build
使用dockerfile方式创建镜像
使用dockerfile文件docker build dockerflle/,dockerfile文件默认位于dockerflle/Dockerfile
可以在这里设置cgroup
commit
通过容器创建本地镜像。注意:如果要push到docker hub中,注意生成镜像的命名。
docker commit 容器id 镜像名
docker commit 536f0efeeef3 centostttt
export
将容器的文件系统打包成tar文件
有两种方式:
docker export -o mysqldb1.tarmysqldb
docker export mysqldb >mysqldb.tar
history
显示镜像制作的过程,相当于dockfile
docker history centostttt IMAGE CREATED CREATED BY SIZE COMMENT f2bb8fe139f0 46 minutes ago /bin/bash 1.671MB 8da04c5a9351 56 minutes ago /bin/sh -c #(nop) ENV PWD=/root/ 0 B 77d730816eed 56 minutes ago /bin/sh -c #(nop) ENV PATH=/usr/local/sbin:/ 0 B 3bee3060bfc8 13 days ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0 B <missing> 13 days ago /bin/sh -c #(nop) LABEL name=CentOS Base Ima 0 B <missing> 13 days ago /bin/sh -c #(nop) ADDfile:d22a9c627d1d1f32a8 192.5 MB
images
列出本机的所有镜像
import
根据tar文件的内容新建一个镜像,与之前的export命令相对应
docker import mysqldb.tar mysql:v1
eb81de183cd94fd6f0231de4ff29969db822afd3a25841d2dc9cf3562d135a10
load
与save命令相对应,将sava命令打包的镜像通过load命令导入
pull
从docker hub中下载镜像
push
将本地的镜像上传到docker hub中
前提是要先用docker login登录上,不然会报错误
rmi
删除镜像
save
将镜像打包,与上面的load命令相对应
docker save -o nginx.tar nginx
search
从Docker Hub中搜索镜像
tag
对镜像进行重命名
容器生命周期
attach
将终端依附到容器上
docker attachb7a7c4bef5a5
create
创建一个容器。注意,此时,容器的status只是Created
可以在这里设置cgroup【CPU、内存、IO等等】、Capability、namespace、volume等等
docker create -c 2(最少2) --cpuset-cpus 0,2 -m 32m --memory-swap 0-w /root/(更换目录) --blkio-weight 10 --dns 114.114.114.114--name nginx8(容器名称) -p 宿主机端口:容器端口 -v 宿主机目录:容器目录--cpu-period 1000 --expose 22 --shm-size 32m -ti centos6:nginx
exec
用于容器启动后,执行其它的任务。
通过exec命令可以创建两种任务:后台型任务和交互型任务
后台型任务:
docker exec -d cc touch 123 其中cc是容器名
交互型任务:
docker exec -i -t cc /bin/bash
ls
123 bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
inspect
用于查看容器的配置信息,包含容器名、环境变量、运行命令、主机配置、网络配置和数据卷配置等。
docker inspect 容器ID或者容器ID列表
返回一个列表(包含字典)
kill
强制终止容器。
参数-s或--signal string:Signal to send to thecontainer (default "KILL")
logs
用于查看容器的日志,它将输出到标准输出的数据作为日志输出到docker logs命令的终端上。常用于后台型容器
pause
暂停容器内的所有进程,此时,通过dockerstats可以观察到此时的资源使用情况是固定不变的,通过docker logs -f也观察不到日志的进一步输出。
port
查看容器端口与宿主机端口的映射情况
docker port blog
80/tcp -> 0.0.0.0:80
容器blog的内部端口80映射到宿主机的80端口,这样可通过宿主机的80端口查看容器blog提供的服务
ps
列出所有容器,其中dockerps用于查看正在运行的容器,ps -a则用于查看所有容器。
rename
更改容器的名字
restart
重启容器
rm
删除容器,注意,删除一个运行中的容器,必须加-f参数
如果要一次性删除所有容器,可使用docker rm -f `docker ps -a -q`,其中,-q指的是只列出容器的ID
run
让创建的容器立刻进入运行状态,该命令等同于docker create创建容器后再使用docker start启动容器
可以在这里设置cgroup【CPU、内存、IO等等】、Capability、namespace、volume等等
start
启动容器
stats
动态显示容器的资源消耗情况,包括:CPU、内存、网络I/O
stop
停止一个运行的容器
top
查看容器中正在运行的进程
unpause
恢复容器内暂停的进程,与pause参数相对应
wait
捕捉容器停止时的退出码
执行此命令后,该命令会“hang”在当前终端,直到容器停止,此时,会打印出容器的退出码。
update
Updateconfiguration of one or more containers
升级一个或者多个容器配置,主要是cgroup
容器文件系统
cp
在容器和本地文件系统上拷贝文件【夹】
docker cp [OPTIONS]CONTAINER:SRC_PATH DEST_PATH|-
dockercp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
docker cp tta49d7ca21839:/root/
docker cpa49d7ca21839:/root/test/ ./
diff
对比容器的文件变化情况
dockerdiff a49d7ca21839
volume
Manage Dockervolumes
其他
events
实时或者指定时间戳输出Docker服务器端的事件,包括容器的创建,启动,关闭等。
info
查看docker的系统信息
login
登录到自己的Dockerregister,需有Docker Hub的注册账号
docker login
Username: ivictor
Password:
Email: xxxx@foxmail.com
WARNING: login credentials saved in /root/.docker/config.json
Login Succeeded
logout
退出登录
docker logout
Remove logincredentials for https://index.docker.io/v1/
version
查看docker的版本
network
Manage Dockernetworks
docker网络管理
node
Manage DockerSwarm nodes
service
Manage Docker services
swarm
Manage DockerSwarm
区别
stop和kill、wait
docker stop命令给容器中的进程发送SIGTERM信号,默认行为是会导致容器退出,当然,容器内程序可以捕获该信号并自行处理,例如可以选择忽略。
docker kill则是给容器的进程发送SIGKILL信号,该信号将会使容器必然退出。
docker wait捕捉容器停止时的退出码。执行此命令后,该命令会“hang”在当前终端,直到容器停止,此时,会打印出容器的退出码。
run和create、start
create只是创建容器,没有启动。可以配置cgroup
start是启动容器
run是创建并启动容器,run=create+start。可以配置cgroup
exec和attach
exec
在启动的容器上执行命令,可以分为后台和交互式。
交互式执行类似attach,但退出之后不会结束容器。
attach
在容器上附属一个终端,退出之后可能会结束容器(容器启动命令为/etc/bash)