启动 systemctl start docker
查状态 systemctl status docker
关闭 systemctl stop docker
查帮助文档 docker info
重启 systemctl restart docker
开机启动 systemctl enable docker
ubuntu
sudo service docker start
sudo service docker stop
sudo service docker restart
镜像查看 docker images
repository 镜像名称
tag 镜像标签
image id 镜像id
created 创建日期
size 大小
搜索 docker search 镜像名
name 镜像名
description 描述
stars 星数
official 是否官方
automated 是否自动构建流程创建
安装 docker pull 镜像名:版本
版本默认最新
删除 docker rmi 镜像id/镜像名称
全部删除 docker rmi `docker images -q`
容器创建容器 docker run
-i 运行容器
-t 进入其命令行
--name 容器命名 唯一
-v 宿主机目录映射 可以多个 创建时挂载 宿主机路径:容器路径
-d 守护式容器
-p 端口映射
交互式:docker run -it --name=容器名 镜像名:版本 /bin/bash
守护式:docker run -di --name=容器名 镜像名:版本
目录挂载:docker run -it -v 宿主机目录 --name=容器名 镜像名:版本 /bin/bash
查看 docker ps
contaoner id 容器id
image 对应镜像
command 命令
created 创建日期
status 状态
ports 端口
name 名字
查看所有容器 docker ps -a
登录 docker exec -it 容器名/容器id /bin/bash
退出容器 exit
停止 docker stop 容器id/容器名字
启动 docker start 容器id/容器名字
文件拷贝 docker cp 待拷贝目录 目标目录
查看配置 docker inspect 容器名/容器id
docker inspect --format='{{.配置名.配置名..}}' 容器名/容器id
删除 docker rm 容器名/容器id
仅能删除未运行容器
软件部署mysql
docker pull mysql:5.7
docker run -di --name=mysql -p 3306:3306 -e mysql:5.7
docker exec -it mysql /bin/bash
mysql 数据盘问题
文件挂载后 mysql停止运行 改配置文件
nginx
docker pull nginx
docker run -di --name=nginx -p 80:80 -v /user/local/nginx/conf:/etc/nginx nginx
redis
docker pull redis
docker run -di --name=redis -p 6379:6379 redis
rabbitmq
docker pull rabbitmq:版本号
docker run -di --name=rabbitmq -p 宿主机端口:虚拟端口 rabbitmq:版本
迁移备份
容器打包(容器保存为镜像) docker commit 容器名 新镜像名
镜像备份 docker save -o 包名.tar 镜像民
镜像导入 docker load -i 报名.tar
dockerfile
docker 创建镜像脚本
构建流程 FROM 镜像名:版本
声明镜像创建者 MAINTAINER 创建人名字
设置环境变量(可以多个) ENV key vlaue ..
设置核心部分 RUN command
宿主机文件拷贝到容器内(压缩文件自动解压) ADD 宿主机文件 容器文件位置
宿主机文件拷贝到容器内 COPY 宿主机文件 容器文件位置
设置工作目录 WORKDIR 文件目录
私有仓库拉取 docker pull registry
启动私有仓库 docker run -di --name=registry -p 5000:5000 registry
添加信任
改daemon.json vim /etc/docker/daemon.json
添加内容 {"insecure-registries":["ip地址:5000"]}
重启dokcer服务
镜像上传
docker tag 镜像名 ip:5000/镜像名
docker images
REPOSITORY 为ip:5000/镜像名 为标签名
docker push 标签名