Docker入门教程

作者:起个名字好难2024.02.18 14:06浏览量:4

简介:Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows机器上,也可以实现虚拟化。

Docker入门教程

一、简介

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows机器上,也可以实现虚拟化。Docker使用容器来运行应用,它是一种轻量级的虚拟化方式,可以在一台机器上运行多个容器。

二、安装Docker

首先需要安装Docker,Docker支持多种操作系统,包括Linux、Windows和Mac OS。可以到Docker官网下载适合自己操作系统的Docker安装包进行安装。

三、Docker基础命令

  1. 查看Docker版本信息:docker version
  2. 查看Docker运行中的容器:docker ps
  3. 拉取镜像:docker pull 镜像名
  4. 运行容器:docker run 镜像名
  5. 停止容器:docker stop 容器ID/名称
  6. 删除容器:docker rm 容器ID/名称
  7. 删除镜像:docker rmi 镜像ID/名称
  8. 进入容器:docker exec -it 容器ID/名称 /bin/bash
  9. 导出容器:docker save -o 导出文件名 镜像名
  10. 导入镜像:docker load -i 导入文件名

四、Docker使用示例

下面以一个简单的Web应用为例,演示如何使用Docker。

  1. 创建一个Dockerfile文件,内容如下:

    1. FROM ubuntu:latest
    2. RUN apt-get update && apt-get install -y nginx
    3. EXPOSE 80
    4. CMD /usr/sbin/nginx -g "daemon off;"

    这个Dockerfile表示创建一个基于最新版Ubuntu的镜像,安装nginx,并将容器的80端口映射到主机的80端口。

  2. 在命令行中进入包含Dockerfile的目录,运行以下命令构建镜像:docker build -t mynginx . (注意最后有一个点)
    这个命令将会根据Dockerfile构建一个名为mynginx的镜像。

  3. 运行镜像:docker run -d -p 80:80 mynginx。这个命令将会在后台运行一个容器,并将容器的80端口映射到主机的80端口。
    在浏览器中输入localhost,就可以看到nginx的欢迎页面了。

  4. 如果想停止运行的容器,可以使用docker stop 容器ID/名称命令。想重新启动停止的容器,可以使用docker start 容器ID/名称命令。如果想删除已经停止的容器,可以使用docker rm 容器ID/名称命令。同样,如果想删除之前构建的镜像,可以使用docker rmi 镜像ID/名称命令。
    ```shell script
    docker stop mynginx
    docker start mynginx
    docker rm mynginx
    docker rmi mynginx

    1. 注意:删除容器的命令可能会因为容器是否正在运行而有所不同,需要谨慎操作。删除容器或镜像时需要确认是否保留数据卷。如果使用了数据卷,需要先删除数据卷再删除容器或镜像。否则,数据将无法恢复。
    2. ```shell script
    3. docker volume rm volume_name
  5. Docker的数据卷是一个特殊类型的容器,它可以持久化存储容器的数据。即使容器被删除,数据卷依然存在。可以通过以下命令来创建、查看和删除数据卷:docker volume create、docker volume ls和docker volume rm。在运行容器时,可以使用-v或—volume参数来挂载数据卷。例如:docker run -d -p 80:80 —name myweb -v /my/data:/usr/share/nginx/html:ro mynginx。这个命令将会将主机的/my/data目录挂载到容器的/usr/share/nginx/html目录中,并设置为只读模式。这样就可以在容器中存储持久化的数据了。如果需要备份数据卷中的数据,可以直接复制数据卷的路径下的文件或目录即可。在删除容器时,如果不希望删除数据卷中的数据,可以将其设置为true或者不指定该参数即可保留数据卷中的数据。例如:docker rm —volumes myweb。这个命令将会删除名为myweb的容器,但保留其数据卷中的数据。如果需要删除所有未使用的数据卷,可以使用以下命令:docker volume prune。这个命令将会删除所有未使用的数据卷以及其关联的数据。请谨慎操作该命令,以免误删除了