您的位置:首页 > 娱乐 > 明星 > Docker快速入门

Docker快速入门

2024/10/6 12:31:14 来源:https://blog.csdn.net/weixin_45715405/article/details/141198636  浏览:    关键词:Docker快速入门

文章目录

  • 1、Docker简介/安装
    • 1.1、Docker简介
    • 1.2、ubuntu18.04上安装Docker
    • 1.3、卸载Docker
  • 2、Docker常用命令
    • 2.1、列举常用命令使用参数
  • 3、制作自己的镜像
  • 3、目录挂载
  • 4、Docker-Compose

1、Docker简介/安装

1.1、Docker简介

Docker 是一个应用打包、分发、部署的工具
你也可以把它理解为一个轻量的虚拟机,它只虚拟你软件需要的运行环境,
普通的虚拟机则是一个完整而庞大的系统,包含了所有文件系统和软件。

Docker 的主要优势包括:
一致性和可移植性:应用程序可在任何支持 Docker 的环境中运行。
轻量和高性能:容器化应用程序更加轻量,资源利用率高。
快速部署和扩展:通过编排工具可实现自动化部署和弹性扩展。
安全隔离:容器化应用程序彼此之间以及与宿主机之间实现了良好的隔离。

镜像:可以理解为软件安装包,可以方便的进行传播和安装。
容器:软件安装后的状态,每个软件运行环境都是独立的、隔离的,称之为容器。

1.2、ubuntu18.04上安装Docker

1、通过官方仓库安装

 sudo apt-get updatesudo apt-get install \apt-transport-https \ca-certificates \curl \gnupg \lsb-release

2、添加软件源的GPG密钥(本人选择的中科大选择其中一个即可)

中科大:
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -阿里云:
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -官方源:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

3、向 source.list 中添加Docker软件源(本人选择的中科大)

中科大源:
sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable"阿里源:
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"官方源:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

4、再次更新索引包

sudo apt-get updatesudo apt-get install docker-ce docker-ce-cli containerd.io

5、验证是否成功

# 用hello world镜像验证安装是否成功
sudo docker run hello-world# 设置开机自启动docker
sudo systemctl enable docker

6、执行5拉取镜像时可能会出现以下错误

error pulling image configuration: download failed after

解决方法:
打开 Docker 的配置文件 daemon.json

vim /etc/docker/daemon.json

添加国内镜像源

{"registry-mirrors": ["https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn","https://hub-mirror.c.163.com","https://mirror.baidubce.com"]
}

保存配置文件并重启服务

sudo systemctl daemon-reload
sudo systemctl restart docker

桌面版:https://www.docker.com/products/docker-desktop
服务器版:https://docs.docker.com/engine/install/#server
镜像仓库:https://hub.docker.com/

1.3、卸载Docker

sudo apt-get purge docker-ce docker-ce-cli containerd.io# 如果要抹去镜像和容器
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd# 如果需要删除所有镜像,容器和卷(第一次安装请忽略):
sudo rm -rf /var/lib/docker# 备注:apt-get remove会保留软件的配置文件如果想删除请执行以下操作
# 查看相关软件包是否有残余:
dpkg -l | grep docker# 使用purage清除配置文件:
sudo apt-get purge docker-ce

2、Docker常用命令

--列举出所有容器
docker ps--列举出所有docker名字
docker images--查看所有容器(包含已经停止的)
docker ps -a--停止容器
docker stop (容器名字|容器id前三位)--停止所有
docker stop 'docker ps -aq'--删除容器
docker rm (容器id前三位)--再次进入容器
docker exec -ti (容器id) bash--拉取镜像
docker pull 镜像名称--搜索镜像
docker search 镜像名称

2.1、列举常用命令使用参数

1、在Docker中运行容器

docker run [OPTIONS] IMAGE [COMMAND] [ARG...][OPTIONS]:可选参数,用于配置容器的各种选项,如端口映射、容器名称等。IMAGE:要运行的镜像名称或ID。[COMMAND] [ARG...]:可选的命令和参数,用于在容器内执行特定的命令。

2、构建自己的Docker镜像

docker build [OPTIONS] PATH | URL | -[OPTIONS]:可选参数,用于配置构建过程,如镜像标签、构建上下文路径等。PATH | URL | -:Dockerfile所在的路径、URL或者使用标准输入作为Dockerfile。

3、从Docker仓库中拉取现有的镜像

docker pull [OPTIONS] NAME[:TAG|@DIGEST][OPTIONS]:可选参数,用于配置拉取过程,如认证信息等。NAME[:TAG|@DIGEST]:要拉取的镜像名称、标签或摘要。

4、将本地的镜像推送到Docker仓库

docker push [OPTIONS] NAME[:TAG][OPTIONS]:可选参数,用于配置推送过程,如认证信息等。NAME[:TAG]:要推送的镜像名称和标签。

5、启动已停止的容器

docker start [OPTIONS] CONTAINER [CONTAINER...][OPTIONS]:可选参数,用于配置启动过程,如守护模式等。CONTAINER [CONTAINER...]:要启动的容器名称或ID。

6、重启正在运行的容器

docker restart [OPTIONS] CONTAINER [CONTAINER...][OPTIONS]:可选参数,用于配置重启过程,如超时时间等。CONTAINER [CONTAINER...]:要重启的容器名称或ID。

7、在运行中的容器内执行命令

docker exec [OPTIONS] CONTAINER COMMAND [ARG...][OPTIONS]:可选参数,用于配置执行过程,如进入交互模式等。CONTAINER:要执行命令的容器名称或ID。COMMAND [ARG...]:要在容器内执行的命令及其参数。

3、制作自己的镜像

Dockerfile是用于定义Docker镜像构建过程的文本文件。它包含一系列的指令和配置,用于指导Docker引擎在构建过程中执行特定的操作。以下是一些与Dockerfile相关的常用命令:

FROM:指定基础镜像。RUN:在容器内执行命令。COPY:将文件或目录从主机复制到容器内。ADD:将文件或目录从主机复制到容器内,并支持URL和解压缩操作。WORKDIR:设置工作目录。EXPOSE:声明容器运行时监听的端口。CMD:指定容器启动时要执行的命令。

1、编写 Dockerfile

# FROM <image>:<tag> 指定基础镜像,必须是第一个指令
FROM node:11# 镜像维护者的信息
MAINTAINER zhu# 复制代码
ADD . /app# 设置容器启动后的默认运行目录
WORKDIR /app# 运行命令,安装依赖
# RUN 命令可以有多个,但是可以用 && 连接多个命令来减少层级。
# 例如 RUN npm install && cd /app && mkdir logs
RUN npm install --registry=https://registry.npm.taobao.org# CMD 指令只能一个,是容器启动后执行的命令,算是程序的入口。
# 如果还需要运行其他命令可以用 && 连接,也可以写成一个shell脚本去执行。
# 例如 CMD cd /app && ./start.sh
CMD node app.js

2、编译

docker build -t test:v1 .# -t 设置镜像名字和版本号# 运行 docker run -p 9000:8080 --name test-hello test:v1
-p 将8080映射容器内端口到宿主机9000
--name 容器名字
-d 后台运行

3、目录挂载

使用 Docker 运行后,我们改了项目代码不会立刻生效,需要重新build和run,很是麻烦。
容器里面产生的数据,例如 log 文件,数据库备份文件,容器删除后就丢失了。

bind mount 直接把宿主机目录映射到容器内,适合挂代码目录和配置文件。可挂到多个容器上
文档参考:https://docs.docker.com/storage/

bind mount 方式用绝对路径 -v D:/code:/appvolume 方式,只需要一个名字 -v db-data:/app示例:
docker run -p 8080:8080 --name test-hello -v D:/code:/app -d test:v1

4、Docker-Compose

Docker-compose是一个用于定义和运行多个容器应用程序的工具。它使用YAML文件来配置应用程序的服务、网络和卷等。以下是一些与Docker-compose相关的常用命令:

docker-compose up:构建并启动Docker-compose定义的所有服务。docker-compose down:停止并删除Docker-compose定义的所有服务。docker-compose build:构建Docker-compose定义的所有服务的镜像。docker-compose logs:查看Docker-compose定义的所有服务的日志。

要把项目依赖的多个服务集合到一起,我们需要编写一个docker-compose.yml文件,描述依赖哪些服务
参考文档:https://docs.docker.com/compose/

version: "3.7"services:app:build: ./ports:- 80:8080volumes:- ./:/appenvironment:- TZ=Asia/Shanghairedis:image: redis:5.0.13volumes:- redis:/dataenvironment:- TZ=Asia/Shanghaivolumes:redis:
在docker-compose.yml 文件所在目录,执行:docker-compose up就可以跑起来了。
命令参考:https://docs.docker.com/compose/reference/up/在后台运行只需要加一个 -d 参数docker-compose up -d
查看运行状态:docker-compose ps
停止运行:docker-compose stop
重启:docker-compose restart
重启单个服务:docker-compose restart service-name
进入容器命令行:docker-compose exec service-name sh
查看容器运行log:docker-compose logs [service-name]

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com