docker服务相关的命令
- 启动docker服务:
systemctl start docker
- 停止docker服务:
systemctl stop docker
- 重启docker服务
systemctl restart docker
- 查看docker服务状态
systemctl status docker
- 设置开机启动docker服务
systemctl enable docker
docker镜像相关的命令
- 查看镜像
docker images
docker images -q
查看所有镜像id - 搜索镜像
docker search 镜像名称
-下载镜像
docker pull 镜像名称:版本号
(不加版本号,默认下最新的版本latest)
-删除镜像(remove images===mi)
docker rmi 镜像ID
docker rmi 镜像名称:镜像版本号
docker rmi `docker images -q`
删除所有镜像
docker容器相关的命令
- 创建容器
docker run -it --name=容器名称 镜像名称:镜像版本号 /bin/bash
在centos中默认command就是bin/bash,创建时后面的可以不输.
参数说明:
-i 表示一直运行着
-t 表示有命令行,会进入到容器内部,输入exit退出,容器会自动关闭
-d表示后台创建并运行容器,不会进入到容器内部,输入exit退出,容器不会自动关闭,输完了就会进入到容器内部,输入exit即可退出容器。
- 查看正在运行的容器
docker ps
- 查看所有存在的容器(包括未运行的)
docker ps -a
- 进入到容器内部
docker exec -it 容器名称 /bin/bash
- 启动容器
docker start 容器名称
- 关闭容器
docker stop 容器名称
- 查看所有容器id
docker ps -aq
- 删除容器(正在运行的容器不能够被删除)
docker rm 容器名称/容器ID
- 删除所有容器
docker rm `docker ps -aq`
- 查看容器信息
docker inspect 容器名称
docker容器数据卷
- 配置数据卷
docker run ... -v 宿主机目录(文件):容器内目录(文件)。。。
- 配置完数据卷之后,容器目录内容变化,宿主机也变化,反之亦然。
- 两个容器挂在同一个数据卷,实现两个容器之间的数据交换
数据卷容器
Docker应用部署
- 创建mysql容器
- 搜索镜像
docker search mysql
docker pull mysql:5.6
拉取镜像docker run -id -p 3307:3306 --name=c_mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=你的密码 mysql:5.6
创建容器,并映射端口,配置数据卷docker exec -it c_mysql /bin/bash
c_mysql 是容器名称,进入容器mysql -uroot -p你的密码
进入mysqlsheshow databases;
查看数据库
dockerfile
镜像制作
Dockerfile常用关键字
关键字 | 说明 |
---|---|
FROM | 指定基础镜像 |
MAINTAINER | 指定镜像作者信息 |
RUN | 执行命令,并在镜像中生成新的镜像层 |
COPY | 复制文件或目录到镜像中 |
ADD | 类似COPY,但是支持更多功能,例如自动解压缩和远程文件下载 |
CMD | 容器启动时执行的默认命令 |
ENTRYPOINT | 容器启动时执行的应用程序入口点 |
ENV | 设置环境变量 |
ARG | 定义构建时可传递给镜像的参数 |
EXPOSE | 暴露容器的端口号 |
VOLUME | 定义数据卷 |
WORKDIR | 设置容器的工作目录 |
USER | 指定容器运行时的用户 |
ONBUILD | 定义镜像被用作其他镜像的基础镜像时需要执行的指令 |