安装docker:https://yeasy.gitbook.io/docker_practice/install/ubuntu
基本命令
从 Docker 镜像仓库获取镜像:
docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
eg:
docker pull ubuntu:18.04
运行镜像:
docker run -it --rm ubuntu:18.04 bash
- -it:这是两个参数,一个是 -i:交互式操作,一个是 -t 终端。我们这里打算进入 bash 执行一些命令并查看返回结果,因此我们需要交互式终端。
- —rm:这个参数是说容器退出后随之将其删除。默认情况下,为了排障需求,退出的容器并不会立即删除,除非手动 docker rm。我们这里只是随便执行个命令,看看结果,不需要排障和保留结果,因此使用 —rm 可以避免浪费空间。
- ubuntu:18.04:这是指用 ubuntu:18.04 镜像为基础来启动容器。
- bash:放在镜像名后的是 命令,这里我们希望有个交互式 Shell,因此用的是 bash。
退出容器:
exit
列出镜像:
docker image ls
虚悬镜像查看和删除:
docker image ls -f dangling=truedocker image prune
删除本地镜像:
docker image rm [选项] <镜像1> [<镜像2> ...] #命令格式docker image rm centos #eg
新建容器:
docker rundocker run ubuntu:18.04 /bin/echo 'Hello world' #执行后退出docker run -t -i ubuntu:18.04 /bin/bash #进入容器虚拟终端
启动容器:
docker container start
守护态运行:
让 Docker 在后台运行而不是直接把执行命令的结果输出在当前宿主机下,可是使用-d参数;
docker run -d ubuntu:18.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"docker container logs [container ID or NAMES] #查看输出信息
停止容器:
docker container stopdocker container ls -a
进入容器:
docker attach 243c #exit will due to this container stopdocker exec -it 69d1 bash #exit couldn't due to stop
导出容器:
docker export 7691a814370e > ubuntu.tar
导入容器:
cat ubuntu.tar | docker import - test/ubuntu:v1.0
删除容器:
docker container rm trusting_newton #stop containerdocker container rm -f trusting_newton #running containerdocker container prune #clear all container
挂载主机目录:
docker run -d -P \--name web \# -v /src/webapp:/usr/share/nginx/html \--mount type=bind,source=/src/webapp,target=/usr/share/nginx/html \nginx:alpine
网络端口随机映射:
docker run -d -P nginx:alpine
dockerfile
Dockerfile的作用:它可以让用户个性化定制Docker镜像。因为工作环境中的需求各式各样,网络上的镜像很难满足实际的需求。
格式:
- Dockerfile整体就两类语句组成:
- Dockerfile文件名首字母必须大写。
- Dockerfile指令不区分大小写,但是为方便和参数做区分,通常指令使用大写字母。
- Dockerfile中指令按顺序从上至下依次执行。
- Dockerfile中第一个非注释行必须是FROM指令,用来指定制作当前镜像依据的是哪个基础镜像。
- Dockerfile中需要调用的文件必须跟Dockerfile文件在同一目录下,或者在其子目录下,父目录或者其它路径无效。
