docker系列学习(一)

本文围绕Docker展开,介绍了其安装过程,包括在CentOS - 7系统下升级包、下载依赖、配置下载地址等步骤。还阐述了操作镜像的方法,如配置加速器、下载、查询和删除镜像。此外,详细说明了容器的操作,涵盖运行、查看、删除容器以及容器生命周期操作和交互等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一. docker的安装

  1. 环境

本机操作系统: Windows10 64位
虚拟机软件: VMware14
虚拟机操作系统: CentOS-7 64位

  1. 升级所有包同时也升级软件和系统内核

yum -y update
注: 加 -y 是不需要问,一直yes
yum updateyum upgrade 啥区别??

  1. 下载docker需要的依赖包

yum install -y yum-utils device-mapper-persistent-data lvm2

  1. 配置docker-ce(社区版)的下载地址

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

  1. 查看可下载的docker-ce信息,排序

yum list docker-ce --showduplicates | sort -r

  1. 下载最新版本的docker-ce

yum -y install docker
下载指定版本的docker-ce
例: yum -y install docker-ce-18.03.1.ce

  1. 启动docker

systemctl start docker

  1. 设置docker开机启动

systemctl enable docker

  1. 查看版本(包含客户端和server)
    docker version
  2. 卸载docker

暂时还不想卸载…

二. 操作镜像

  1. 配置docker在中国的加速器(下面只是众多方法之一)
  1. cd /etc/docker
  2. 新建daemon.json文件,并编辑:
    vim daemon.json
  3. 将此json字符串放进去:
    { "registry-mirrors":["https://registry.docker-cn.com"]}
  4. 重启docker服务,使配置生效:
    service docker restart
  1. 下载所需镜像到宿主机
  1. 列出镜像仓库中所需要的镜像列表(比如:包含java关键字)
    docker search java
  2. 下载镜像
    2.1 下载java镜像,指定版本为jdk8(如果不指定,默认为镜像仓库中的最新版,),
    docker pull java:8
    2.2 下载指定地址(比如自己的私有镜像仓库)的java镜像,指定版本为jdk8
    docker pull XXXXXX.com/java:8
  3. 查询镜像
    docker images
  4. 删除镜像(如果该镜像没有实例化的容器)
    docker rmi imageID

涉及到的命令:

  1. 镜像仓库:
  • search
  • pull
  1. 本地镜像:
  • images
  • rmi

三. 操作容器

  1. 运行一个容器的两种方法
  1. create + start 命令
    先使用 docker create 命令创建一个容器(如果没有本地镜像, 会自动从远程拉取最新版本)(带有各种参数)
    然后使用容器生命周期基本命令(start, stop, restart)的 docker start命令启动容器
  2. run
    该命令直接启动一个容器(如果没有本地镜像, 会自动从远程拉取最新版本)(带有各种参数)
  3. 如果出现IPv4 forwarding is disabled. Networking will not work这个提示信息, 解决办法如下:
    3.1 修改/etc/sysctl.conf文件, 添加net.ipv4.ip_forward=1
    3.2 重启网络服务: systemctl restart network
  4. 例如运行一个Nginx容器
    4.1 先创建一个Nginx容器, 然后运行
  • docker create --name myNginx01 -p 90:80 nginx
  • docker start myNginx01
    4.2 直接运行一个Nginx容器
  • docker run -d --name myNginx02 -p 91:80 nginx
  1. 查看容器
  1. 查看运行中的容器
    docker ps 或者 docker container ps
  2. 查看全部容器
    docker ps -a 或者 docker container ps -a
  3. 查看容器详情(很详细)
    docker inspect 容器
  4. 查看容器正在运行的进程信息
    docker top 容器
  1. 删除容器
  1. 先关闭容器
    docker stop 容器
  2. 删除容器
    docker rm 容器
  1. 容器生命周期的操作
  1. 启动容器
    docker start 容器
  2. 停止容器
    docker stop 容器
  3. 重启容器
    docker restart 容器
  1. 与容器的交互
  1. 创建一个交互终端(就是进入容器)
    docker exec -it 容器 /bin/bash 或者 docker exec -it 容器 bash
### Docker 学习教程:从入门到精通 #### 启动与管理容器 对于希望学习如何启动和管理 Docker 容器的人来说,了解基本命令至关重要。例如,在特定目录下可以通过 `docker-compose up` 命令来启动服务[^1]: ```bash [root@docker01 my_wordpress]# docker-compose up ``` 如果想要让这些服务在后台运行,则可以加上 `-d` 参数实现这点。 #### 创建自定义镜像 为了构建自己的应用程序镜像,开发者通常会创建个名为 **Dockerfile** 的文件。此文件用于描述应用环境及其依赖关系,并指导 Docker 如何打包软件以便分发给其他用户或部署至生产环境中[^2]: ```dockerfile FROM python:3.8-slim-buster WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt COPY . . CMD ["python", "my_app.py"] ``` 这段简单的例子展示了怎样基于官方 Python 镜像建立个新的工作区并安装必要的库。 #### 进入正在运行中的容器 当需要调试程序或者查看内部状态时,可以直接进入某个已经启动的容器内操作。这通过组合使用 `-it` 选项以及指定目标映像名称完成,如下所示[^3]: ```bash [root@docker01 ~]# docker run -it nginx:latest /bin/bash root@79241093859e:/# ``` 上述指令允许用户获得个交互式的 shell 来探索 Nginx Web Server 的默认配置情况。 #### 构建过程中的 CMD 和 ENTRYPOINT 使用区别 值得注意的是,在编写 Dockerfiles 或者理解他人编写的此类脚本过程中,经常会遇到两个相似的概念——`CMD` 和 `ENTRYPOINT`. 虽然两者都可以用来设置容器启动后的初始命令,但是它们之间存在细微差别。比如下面的例子说明了仅改变参数部分而保持基础命令不变的效果[^4]. ```bash # 如果我们在 Dockerfile 中指定了 'ls' 作为入口点... ENTRYPOINT ["/bin/ls"] # ...那么这里只需要提供额外的标志即可得到不同的输出. CMD ["-a"] # 显示所有文件(包括隐藏) ``` 尝试修改成 `["-al"]`, 则可能会因为路径解析错误而导致失败.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值