Docker基本介绍

最近需要将项目做成一个web应用并部署到多台服务器上,于是就简单学习了一下docker,做一下小小的记录。

1、简单介绍一下docker

我们经常遇到这样一个问题,自己写的代码在自己的电脑上运行的很流畅,在其他人电脑上就各种bug,这其中的问题肯定是方方面面的,比如环境依赖,版本问题,操作系统不同等。于是,需要重新在其他电脑或服务器上配置环境,很是麻烦。

因此,需要这样一种软件,让我们只需要配置一次环境后就可以在各个平台上运行,不存在缺少环境依赖,版本以及操作系统等问题。这就是docker存在的意义。

你可以这样理解,当代码能在你电脑上跑通时,docker相当于把你整个电脑上的东西一起打包,发送给别人,因此就不存在版本,操作系统等问题。但是可能存在运行内存过低的问题,毕竟计算资源这玩意儿不能打包。

docker的下载安装网址:http://www.docker.com。如果是windows系统,安装dockertodesktop

2、镜像(image)与容器(container)

镜像:Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。

容器:镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器进程做隔离,对外不可见。

通俗来说,我们需要从中下载镜像dockerhub,然后通过容器创建镜像,根据需求手动diy这个容器,让其能完成我们的目标需求。在对容器进行diy的过程(比如安装python),并不会对原始镜像产生影响。

因此,由同一个镜像生成的容器是相互独立的(安装的软件不会互通)。有点像类与对象的关系,通过镜像new一个容器。

以django部署到docker为例,大致步骤为:

  1. 下载ubuntu镜像(通常会使用linux操作系统的镜像)
  2. 根据镜像创建容器
  3. 进入容器,安装需要的环境(比如anaconda,python以及各种包)
  4. 上传本地文件到容器
  5. 测试代码是否能跑通,反复修改
  6. 将容器生成一个新的镜像,发布到dockerhub,供别人下载

以上就是我部署django的大致流程,还有很多细节没有涉及到,比如容器开机自启动,开放端口号等。

3、docker基本命令

3.1 帮助启动类命令

启动docker(linux系统)

systemctl start docker

停止docker(linux系统)

systemctl stop docker   

重启docker(linux系统)

systemctl restart docker

查看docker状态(linux系统)

systemctl status docker

开机启动(linux系统)

systemctl enable docker

查看docker概要信息

docker info

查看docker总体帮助文档

docker --help

查看docker命令帮助文档

docker 具体命令 --help  (例如:docker exec --help,查看exec命令的帮助文档)

3.2 镜像命令

列出本地主机上的镜像

docker images

ppPGa7j.png

REPOSITORY:表示镜像的仓库源
TAG:镜像的标签版本号
IMAGE ID:镜像ID
CREATED:镜像创建的时间
SIZE:镜像大小

在dockerhub上查找镜像

docker search [OPTIONS] 镜像名字

例如,想要查找ubuntu镜像:

ppPGNng.png

默认是最多展示25个镜像,可以通过--limit来指定数量。例如:

docker search --limit 5 ubuntu

下载镜像

docker pull 镜像名字[:TAG]

没有TAG就是最新版latest,例如:

docker pull ubuntu

删除镜像

docker rmi 某个XXX镜像名字ID
删除单个:docker rmi -f 镜像ID
删除多个:docker rmi -f 镜像名1:TAG 镜像名2:TAG
删除全部:docker rmi -f $(docker images -qa)

虚悬镜像(了解)

仓库名、标签都是   的镜像,俗称虚悬镜像(dangling image)。

3.3 容器命令

新建+启动容器

docker run [OPTIONS] IMAGE [COMMAND][ARG...]

OPTIONS 常用说明:

参数 说明
--name="容器新名字" 为容器指定一个名称
-d 后台运行容器并返回容器ID,也即启动守护式容器
-i 以交互模式运行容器
-t 为容器重新分配一个伪输入终端,也即启动交互式容器
-P 随机端口映射
-p 指定端口映射(-p 8080:80 -p 443:443)

例如,为上文中的ubuntu镜像创建容器:

docker run -it --name="test" ubuntu

ppPGYjS.png

列出当前所有正在运行的容器

docker ps [OPTIONS]

OPTIONS 常用说明:

参数 说明
-a 列出当前所有正在运行的容器+历史上运行过的容器
-l 显示最近创建的容器
-n 显示最近n个创建的容器
-q 静默模式,只显示容器编号

ppPGUBQ.png

在上图中的STATUS 一栏中,Up表示容器正在运行。

退出容器

两种退出方式:

  1. run进去容器,exit退出,容器停止
  2. run进去容器,ctrl+p+q退出,容器不停止

启动已停止运行的容器

docker start 容器ID或容器名

重启容器

docker restart 容器ID或容器名

重新进入容器

docker exec -it 容器ID或容器名 /bin/bash

拷贝文件(容器->主机)

docker cp 容器ID:容器内路径 目的主机路径

停止容器

docker stop 容器ID或容器名

强制停止容器

docker kill 容器ID或容器名

删除已停止的容器

docker rm 容器ID

查看容器日志

docker logs 容器ID

查看容器内运行的进程

docker top 容器ID

查看容器内部细节

docker inspect 容器ID

容器生成镜像

docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]

评论

  1. Gwen4868
    2周前
    2024-2-12 13:28:04

    Мадонна, икона поп-музыки и культурного влияния, продолжает вдохновлять и поражать своей музыкой и стилем. Её карьера олицетворяет смелость, инновации и постоянное стремление к самовыражению. Среди её лучших песен можно выделить “Like a Prayer”, “Vogue”, “Material Girl”, “Into the Groove” и “Hung Up”. Эти треки не только доминировали на музыкальных чартах, но и оставили неизгладимый след в культурной и исторической панораме музыки. Мадонна не только певица, но и икона стиля, актриса и предприниматель, чье влияние простирается далеко за рамки музыкальной индустрии. Скачать mp3 музыку 2024 года и слушать онлайн бесплатно.

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇