基本命令
-
run构建容器命令docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS说明:-
-a stdin:指定输入输出内容类型,可选STDIN/STDOUT/STDERR -
-d:后台运行容器,并返回容器id -
-i:以交互模式运行容器,通常与-t搭配 -
-p:指定端口映射,格式为:宿主机端口:容器端口 -
-P:端口随机映射 -
-t:为容器分配一个伪输入终端,通常与-i同时使用 -
--name="nginx-lib":为容器指定一个名称 -
dns 9.9.9.9:为容器指定一个名称,默认和宿主机一致 -
dns--search example.com:指定容器DNS搜索域名,默认和宿主机一致 -
-h"hostname":指定容器的hostname -
-e username="hemei":设置环境变量 -
--env-file=[]:从指定文件文件读入环境变量 -
--cpuset="0-2"或者--cpuset="0,1,2":绑定容器到指定cpu运行 -
-m:设置容器使用内存最大值 -
--net="bridge":指定容器的网络连接类型,支持bridge/host/none/container四种类型 -
--link=[]:添加链接到另一个容器 -
--expose=[]:开放一个端口或一组端口 -
--volume或-v绑定一个卷 -
--restart=always:开机自启,或者=no:stop后不重启
-
start运行容器-
update更新容器-
--restart=always:开机自启 -
--restart=no:不重新启动
-
stop停止容器
Dockerfile
-
Dockerfile书写
- 第一行必须是
from
- 第一行必须是
-
本地
Dockerfile构建镜像
docker build [选项] <上下文路径/URL/->
docker build -t nginx:v3 .- 最后的这个
.是指上下文目录,docker在对镜像打包的时候会把该上下文目录的文件打包交给Docker引擎以帮助打包镜像 -
docker build是在服务端构建镜像 -
.dockerignore文件是用来剔除不需要上传到服务端文件的 - 可以用
-f ../Dockerfile.php指定某个文件作为Dockerfile
- 最后的这个
-
Git repo 进行构建
- url
# $env:DOCKER_BUILDKIT=0 # export DOCKER_BUILDKIT=0 $ docker build -t hello-world https://github.com/docker-library/hello-world.git#master:amd64/hello-world Step 1/3 : FROM scratch ---> Step 2/3 : COPY hello / ---> ac779757d46e Step 3/3 : CMD ["/hello"] ---> Running in d2a513a760ed Removing intermediate container d2a513a760ed ---> 038ad4142d2b Successfully built 038ad4142d2b -
用给定的tar压缩包构建
docker build http://server/context.tar.gz`