
docker ps查看但钱运行中的容器
docker images查看镜像列表
docker rm container-id删除指定id的容器
docker stop/start container-id停止/启动指定id的容器
docker rimi image-id删除指定id的镜像
docker volume ls查看volume列表
docker network ls查看网络列表
docker pull imageName:tag 拉取配置镜像
docker rmi -f imageId...根据镜像id强制删除
docker ps查看正在使用的镜像
docker logs image-id查看日志
docker inspect 容器ID查看容器中的详细信息
docker exec -it 容器id进入正在运行的容器 (跟后面的docker run 类似)
与
docker attach的区别
attach exec 直接进入容器启动命令的终端,不会启动新的进程用exit退出,会导致容器停止 exec是在容器中打开新的终端,并且可以启动新的进程用exit退出,不会导致容器的停止
docker cp 容器ID:容器内路径 目的主机路径将容器中的文件拷贝到宿主机中,如果是Windows系统的话起始目录为/c/....
docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的镜像名:[Tag] 基于已有的容器使之成为一个新的镜像
| 参数 | 说明 |
|---|---|
| –name=“容器名字” | 为容器指定一个名字,否则自动取名 |
| -d | 后台运行容器并返回容器ID,也即启动守护式容器(后台运行) |
| -i | 以交模式运行容器,通常与-t同时使用 |
| -t | 为容器重新分配一个伪输入终端,通常与-i同时使用 |
| -P | 随机映射端口,大写P |
| -p | 指定端口映射,小写p,端口映射 -p 8080(宿主机上):80(容器内) |
| ``–privileged=true -v` | /宿主机/绝对路径目录:/容器内目录,可以将数据存放在宿主机的指定目录:权限 (比较重要 -v可指定多个参数,可以实现容器和本地机器的数据关联实现数据的持久化) |
| 参数 | 说明 |
|---|---|
| -a | -all | 展示所有正在运行的镜像 |
| -n | 展示前n个正在运行的镜像 |
| -l | --latest | 展示最后创建的镜像 |
| -q | --quiet | 只展示容器id |
| -s | --size | 展示文件的大小 |

docker cp 容器ID:容器内路径 目的主机路径docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录 镜像名将数据卷同步保存到宿主机依次输入以下命令
docker images // 查看存在的镜像
docker pull ubuntu:18.04
docker run -it ubuntu:18.04 bash //启动交互式ubuntu并使用bash
// 输入 exit 退出

首先创建一个 docker-compose.yml,内容如下:
version: '3.1'
services:
wordpress:
image: wordpress
restart: always
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: exampleuser
WORDPRESS_DB_PASSWORD: examplepass
WORDPRESS_DB_NAME: exampledb
volumes:
- wordpress:/var/www/html
db:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: exampledb
MYSQL_USER: exampleuser
MYSQL_PASSWORD: examplepass
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- db:/var/lib/mysql
volumes:
wordpress:
db:
进入到同级目录,启动命令:
docker-compose up -d
我用的是Windows桌面版的,所以可以直接查看可视化界面:

然后我们可以打开浏览器访问:localhost:8080

这里直接参照 简明教程 中的操作
给Web项目构建镜像
示例项目代码:https://github.com/gzyunke/test-docker
先去clone一下项目代码。
编写 Dockerfile
FROM node
# 复制代码,将宿主机中 "." 目录下的文件到容器中 "/app" 目录下
ADD . /app
# 设置容器启动后的默认运行目录
WORKDIR /app
# 运行命令,安装依赖
# RUN 命令可以有多个,但是可以用 && 连接多个命令来减少层级。
# 例如 RUN npm install && cd /app && mkdir logs
RUN npm install --registry=https://registry.npm.taobao.org
# CMD 指令只能一个,是容器启动后执行的命令,算是程序的入口。
# 如果还需要运行其他命令可以用 && 连接,也可以写成一个shell脚本去执行。
# 例如 CMD cd /app && ./start.sh
CMD node app.js
为镜像(安装包)和运行
在代码文件夹下编译 docker build -t test:v1
-t设置镜像名称和对应的版本号
这里可能会出现下载配置node出错

可以按照下图,打开设置,修改其中配置中的"buildkit": false

运行: docker run -p 9950:8080 --name test-test test:v1
-p映射容器内端口到宿主机--name容器名字-d后台运行
打开浏览器进行访问

Union 文件系统(Union)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下。Union文件系统时Docker镜像的基础。镜像可以通过分层来进行继承,基于基础镜像,可以制作各种具体的应用镜像。