基础操作-镜像
- 从仓库获取镜像
搜索镜像:docker search image_name
搜索结果过滤:
是否是官方:
docker search --filter "is-official=true" image_name
是否是自动化构建
docker search --filter "is-automated=true" image_name
大于多少颗星
docker search --filter stars=3 iamge_name
下载镜像:docker pull image_name - 本地镜像的查看:
docker iamges - 本地镜像的删除:
docker rmi image_name
基础操作-容器
- 创建容器:
docker run -itd --name container_name image_name
-i表示以交互模式运行容器;
-d表示后台运行容器,并返回容器ID;
-t为容器指定名称;
--name为容器指定名称 - 查看容器(运行中的):
docker ps - 查看容器(包括已停止的):
docker ps -a - 启动容器:
docker start container_name/container_id - 停止容器:
docker stop container_name/container_id - 重启容器:
docker restart container_name/container_id - 删除容器:
docker rm container_name/container_id
容器的修改及保存
- 进入容器:
docker exec -it container_name/container_id /bin/bash - 退出容器:
exit - 提交修改:
docker commit -a "author" -m "message" container_name/container_id new_image_name:tag_name参数说明
-a:参数可选,用于指定作者,可以写你的名字
-m:参数可选,提交信息,可以说以下你做了那些修改
container_id:该参数为被修改的容器ID
new_image_name:此为新镜像的名字,可自定义
tag_name:此为新镜像的标签,可不写,不写时标签默认为lastet
容器进阶操作
- 端口映射
docker run -itd -p 宿主机端口号:容器端口号 - 文件挂载
docker run -itd -v 宿主机文件路径:容器文件路径 - 将容器的文件复制到本地
docker cp 容器名:容器文件名 宿主机文件名 - 将本地的文件复制到容器
docker cp 宿主机文件名 容器名:容器文件名 - 容器互联
docker run -itd --link 被关联的容器名字:被关联容器在容器中的别名 --name container_name image_name修改mysql密码(MYSQL8)
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
Dockerfile
- 什么是Dockerfile
Dockerfile就是名为Dockerfile的文件,文件中包含一些linux命令,Docker通过读取文件中的命令来组建镜像。 - Dockerfile文件结构
Dockerfile一般分为四部分:基础镜像信息,维护者信息,镜像操作指令和容器启动时执行指令,#为Dockerfile中的注释。 - 运行Dockerfile
docker build -t image_name:tag_name .
也可以通-f参数来指定Dockerfile文件位置
docker build -f /path/Dockerfile -t image_name:tag_name .
搭建PHP开发环境
- 下载
mysql,php:7.3-fpm,nginx镜像 - 启动mysql容器:
docker run -itd -v /宿主机目录/mysql:/var/lib/mysql -p 33066:3306 --name=mysql -e MYSQL_ROOT_PASSWORD=password mysql - 启动php容器:
docker run -itd --link mysql:mysql -v /宿主机/代码目录:/var/www/html --name=php php - 启动nginx容器:
docker run -itd -p 宿主机端口号:容器端口号 -v /宿主机/代码目录:/var/www/html --link php:php --name=nginx nginx