docker基本命令
docker基本命令
docker对象包括镜像和容器
info查看docker信息
能够查看的信息包括注册中心信息、docker源信息、容器数目、docker服务器、客户端信息等。
docker info # 可以用来查看注册中心信息以及docker源的信息
-f # 指定输出格式,支持json和TEMPLATE(GO模板)

system管理docker系统
docker system [option]
df # disk usage
events # 获取事件
prune # 移除未使用的数据
docker system df命令
docker system df [option]
--format # 支持json,table,TEMPLATE
-v # 显示更多细节信息

镜像Image
IMAGE ID 和 REPOSITORY:TAG唯一标识一个镜像
images查看镜像
docker images # 查看当前主机的本地镜像库

tag给镜像打标签
docker tag imagename:tag imageID
rmi删除镜像
# 第一种方式
docker rmi image_name:tag
# 第二种方式
docker rmi image_id
import和load装载镜像
装载镜像有两种策略分别用于应对容器tar包和镜像tar包
# 第一种方式应对容器文件tar包的导入
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
# example
docker import myngin4_container.tar myngin4_image:1.0
# 第二种方式应对镜像tar包的导入
docker load [OPTIONS] file
# example
docker load -i hello_image.tar # 这部分不需要打标签的原因是打包之前的镜像就有标签
save打包镜像为tar包
docker save hello-world -o hello_image.tar

inspect观察镜像
docker inspect能够返回镜像或者容器的底层信息,包括ip,cmd、分层信息等等。
docker inspect image_name:tag
docker inspect image_id
history查看镜像构建历史
docker history IMAGE
-q # quiet output, only image id
-H # human readable format
--format json # print output as json
build搭建镜像
docker build --no-cache -t [image_name:tag] ./ -f ./Dockfile
docker build --no-cache -t [image_name:tag] .
-q # 不打印构建过程

容器LXC(linux container)
每个容器有独有的container_name和独有的container_id。所以很多命令可以通过容器id代替容器name。
create创建容器
基于镜像image_name:tag创建一个容器名为container_name的容器。有两种方式docker create和docker run。docker run的作用是创建一个容器并运行它;docker create只创建容器,而不运行.
# /bin/bash是command
docker run -dit --name=container_name image_name:tag /bin/bash
-d # 后台运行
-i # 交互式响应
-t # 伪终端启动
docker create -it --name container_name image_name:tag
rename重命名容器
docker rename mynginx new_name
ps查看容器
docker ps # 查看运行中的容器
docker ps -a # 查看所有容器,包括未运行的
-q # 只打印容器id
-l # 显示最近创建的容器
-s # 显示文件容量大小

run和exec执行特定命令
# 如果在创建容器的时候,没有执行任何命令则可以通过exec去执行一条指令,这只是一种用法
docker run -d --name=container_name image_name:tag # 无执行命令
docker exec -it mynginx2 /bin/bash # 启动一个/bin/bash伪终端
此时的abcdefg是hostname

start启动容器
docker start mynginx2
restart重启容器
docker restart mynginx2 # 容器关闭了可以进行重启
stop停止容器
docker stop mynginx2 # 停止运行中的容器
退出容器
exit
rm删除容器
docker rm container_name
docker rm -f container_name # 强制删除容器
-v # 移除和容器相关匿名卷
export导出容器文件为tar包
# 注意这条命令将容器的文件系统导出到一个tar包,在导入时只能使用docker import导入容器文件为镜像
docker export myngin4 -o myngin4_container.jar

inspect观察容器或者镜像
能够查看容器的一些底层配置信息。
docker inspect container_name
docekr inspect container_id
cp容器和宿主机间复制文件
# 容器向宿主机复制文件
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
# example
docker cp myniginx:/home/share /home/share
# 宿主机向容器复制文件
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
docker cp /home/share myniginx:/home/share
logs查看容器日志
docker logs [OPTION] container
docker logs mynginx
-f # follows跟随打印
-t # 显示时间戳
-n # 显示多少行
--since 1h30m5s # 从1h10min前开始打印日志
--until 1h30m5s # 打印日志直到1h10min前
top监控容器资源
可以查看容器的运行的进程ID以及进程组ID
docker top container
diff查看容器文件系统的改动
docker diff mynginx
update更新容器参数
docker update --cpu-period 10 # 限制CPU完全公平调度周期
docker update --cpu-shares int # 指定CPU份额
--cpus 2 # 指定CPU的数量为2
--memory 1G # 指定内存为1G
commit提交命令
docker commit container_name image:tag # 提交镜像
-a # 指定作者
-m # 提交描述
-c # 应用dokerfile到创建的镜像
port查看端口信息
docker port # 查看现有容器端口信息
数据持久化
创建容器的过程中,难免会遇到数据需要持久化,此时就需要挂载数据卷或者挂载宿主机目录
volume数据卷
数据卷挂载时,会将容器内内容,同步到数据卷中,如果数据卷中有内容,则会被隐藏
docker volume create volume-name # 创建数据卷,一般会挂载到/var/lib/docker/volumes
docker volume ls # 查看所有数据卷
docker volume rm volume-name # 删除数据卷
docker volume inspect volume-name # 观察数据卷
挂载宿主机目录
挂载宿主机目录时,如果容器内目录有内容,而宿主机目录中内容为空;挂载后会发生,容器内目录被隐藏的情况。
-v /nice:/nice

浙公网安备 33010602011771号