Docker 常用指令
2019-09-30 本文已影响0人
一二先生
基于博主使用与学习过程,持续更新......
-
重启
systemctl daemon-reload systemctl restart docker # 开机启动 systemctl enable docker
-
管理
# 删除所有容器 docker rm -f `docker ps -a -q` # 删除无引用的镜像 docker image prune -a -f # 删除所有镜像 docker rmi `docker images -q` # 重启所有容器 docker restart `docker ps -a -q`
-
docker
docker run {dockerParameter} {image} {containerParameter}
{dockerParameter}
为docker create
时期的docker参数①
,只会在创建的时候执行生效一次
并作用于容器整个生命周期,而{containerParameter}
为docker start
时期的容器参数②
,每次启动
都会执行并生效
,因此通过-e
配置的用户名密码
类的环境变量不会因为每次重启容器,将已修改的用户名密码
还原-
rm
:删除容器 -
rmi
:删除镜像 -
f
:强制执行,一般配合删除镜像或容器一起使用 -
run
:启动容器 -
exec
:进入容器 -
inspect
:查看镜像或容器的详情 -
search
:搜索镜像,或访问https://hub.docker.com,搜索相关镜像详细说明,点击版本信息可查看Dockerfile,可阅读相关配置 -
pull
:拉取镜像 -
logs
:查看容器运行日志 -
start
:启动,每次开启,程序重新加载容器参数②
并开启进程 -
stop
:关停,每次关闭,程序会结束进程 -
restart
:重启,每次关闭,程序首先结束进程,再重新加载容器参数②
并开启进程start
、stop
、restart
,虽然不会清空容器内的数据,但是不同于虚拟机挂起模式
,不会保留操作当时的状态,而是类似于虚拟机或计算机的开关机
操作,每次操作都会进入全新的状态,只是运行的数据被保留
-
-
docker run
-
-d
:后台模式运行 -
-i
:交互模式运行 -
-t
:分配一个伪输入终端,通常与 -i 同时使用
-d
与-it
是两种不同容器运行方式,可根据实际情况使用,一般运行容器使用-d
,进入容器使用-it
-
-p
(--publish):映射宿主机端口,前面为宿主机后面为容器 -
-v
(--volume):挂在宿主机目录,方便拷贝或迁移数据,前面为宿主机后面为容器,会将宿主机的数据覆盖至容器,其作用:使容器能够更方便的访问宿主机的文件数据
将容器内的数据存储至宿主机,避免因容器的修改、删除、重建、损坏而丢失数据
-
h
:指定容器主机名 -
m
:指定容器内存大小,一般与--memory-swap
共同作用。异常不生效时,参考:https://blog.csdn.net/qq23ue/article/details/86637460 -
cp
:宿主机与容器文件拷贝- docker cp {container}:{path} {hostPath}:将容器内的文件拷贝至宿主机
- docker cp {hostPath} {container}:{path}:将宿主机的文件拷贝至容器内
-
-e
:设置环境变量(docker参数①
),如docker run ...... -e JAVA_HOME=/var/java ......
-
--name
:容器名称 -
--net
:网络模式(使用host
模式时,-p
参数就不需要了) -
--privileged=true
:设置容器特权。设置为true
时,容器内的root拥有宿主机真正的root权限,设置为false
时,容器内的root只是宿主机的一个普通用户权限 -
--log-opt
:日志参数,常用max-size(文件大小)与max-file(文件数量) -
--{containerParameter} {containerParameterValue}
:容器参数②
,如docker run ...... --JAVA_HOME /var/java
-
-
docker exec:进入容器,示例:docker exec -it {container} {}
-
/bin/bash
|/bin/sh
|bash
|sh
*在容器中,键入exit
退出容器
*bash是sh的完整版,bash完全兼容sh命令,反之不行,具体那个可行需要看容器的基础镜像的脚本解释器
-
-
docker logs:查看容器日志
-
-f
:实时日志 -
-t
:查看日志产生日期 -
--since
:输出指定日期之后的日志 -
--tail=N
:输出前N条日志
-
-
docker info:查看docker信息
-
国内源配置,参考:https://www.cnblogs.com/anliven/p/6218741.html | https://www.jianshu.com/p/4ef9cc9c2092
-
阿里云
产品与服务
->容器镜像服务
->镜像中心
->镜像加速器
# 主流方式(在/etc/docker目录增加daemon.json文件,并在文件中配置镜像仓库地址) sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://1234abcd.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker # centos环境下的其他方式(配置未生效,猜测此配置方式已过时) sudo cp -n /lib/systemd/system/docker.service /etc/systemd/system/docker.service sudo sed -i "s|ExecStart=/usr/bin/docker daemon|ExecStart=/usr/bin/docker daemon https://1234abcd.mirror.aliyuncs.com|g" /etc/systemd/system/docker.service sudo systemctl daemon-reload sudo systemctl restart docker
-
使用公共镜像仓库地址
-
Docker-CN: https://registry.docker-cn.com
-
Azure中国镜像: https://dockerhub.azk8s.cn
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn","https://dockerhub.azk8s.cn"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
-
-
启动该方式指定仓库
# 如果源地址为:registry-1.docker.io/v2 docker pull registry-1.docker.io/v2/{images}
-
扩展
-
docker swarm
,用于docker应用的集群负载管理: -
docker compose
,用于定义和运行多容器 docker应用程序: -
docker machine
,用于创建集群主机的docker容器环境:
-
-