命令

基本命令

# 安装docker
yum install docker

# 启动docker
systemctl start docker

# 配置让docker服务随系统自动启动
systemctl enable docker

# 取消开机自动启动
systemctl disable docker

# 停止docker服务
systemctl stop docker

# 查看nginx服务的状态
systemctl status docker

# 重启docker服务
systemctl restart docker

# 查看版本
docker -v

镜像操作命令

# 搜索镜像
docker search [images_name:tag]

# 下载镜像(:指定版本)
docker pull [images_name:tag]

# 查看本地下载的镜像
docker images

# 自己构建镜像
# 根据dockerfile的路径或者url构建镜像
 docker build [OPTIONS] PATH|URL|-

# 查看镜像的构建历史
docker history [images_name]

# 删除镜像
# 需要先删除以此镜像为基础的容器
 docker rmi [images_name]

容器操作命令

# 创建一个新的容器并运行
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

# 查看运行中的容器
# 可以查看容器ID、基础镜像、容器名称、运行状态、端口映射等
docker ps

# 查看所有容器:包括停止的
docker ps -a

# 查看容器的信息
# 例如端口号的映射、目录挂载
docker inspect [images_name/images_id]

# 启动和停止容器
docker start/stop [container_name/container_id]

#  重启容器
#  使用场景实例:
#  在加入新的npm包依赖需要重新编译的时候使用重启运行编译
#  nginx容器的配置更新后需要重启生效
docker restart [container_name/container_id]

# 进入容器
# ps:有些容器没有bash,需要改成/bin/sh,例如mysq、mongodb的
# 退出容器输入exit 回车键
docker exec -it [container_name/container_id] /bin/bash

# 删除容器
# 在容器停止的状态才能删
docker rm [container_name/container_id]

# 容器主机文件拷
# 将容器文件拷贝到主机
docker cp [container_id/container_name] : [文件目录] [主机目录]

# 将主机的目录拷贝到容器
docker cp [主机目录] [container_id/container_name] : [文件目录]

实战

拉取nginx镜像并启动

  • 从仓库中拉取镜像
docker pull nginx

  • 查看镜像
docker images

  • 创建并运行容器
docker run -it -d --name testnginx -p 80:80 nginx
  • 查看运行中容器
docker ps

  • 进入容器
docker exec -it deb37e8130d9 /bin/bash

  • 修改nginx中html的内容(可在文档中查看文件位置)

文档:https://hub.docker.com/_/nginx

  • 进入目录并修改文件内容
cd ./usr/share/nginx/html/
echo "<h1>Hello world</h1>" > index.html
  • 退出容器
exit

挂载数据到外部修改

  • 主机上新建html

  • 拉取nginx镜像

docker pull nginx
  • 运行并创建容器
docker run -d -p 1000:80 -v /project/testNginx/html:/usr/share/nginx/html --name=textNginx nginx

-v命令 将主机的/project/testNginx/html目录(命令行这里只能写绝对路径哈)下的内容挂载到容器的目录/usr/share/nginx/html内,如果容器的指定目录有文件/文件夹,将被清空挂载后,后续直接修改/project/testNginx/html中的内容即可

打包Dockerfile镜像

  • 创建文件结构

其中dist就是正常的vue打包的项目
Dockerfile文件内容

FROM nginx

//拷贝dist文件下的所有内容到/usr/share/nginx/html/下
COPY ./dist/ /usr/share/nginx/html/
  • cd到/project/testDockerfile下打包镜像
    别忘记最后那个点
docker build -t testDockerfile .

  • 查看镜像

  • 运行

  • 访问页面