Docker常用操作

Docker常用操作

参考:https://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html

1.安装

参考:Ubuntu Docker 安装如何在Ubuntu上安装使用Docker

检查是否安装成功docker versiondocker run hello-world

常用命令:

#查看所有容器(在运行和已经停止运行的容器)
docker ps -a

#启动/终止/重启/运行状态
docker start/stop/restart/stats 容器id或者容器名

#进入容器并打开容器的shell终端
docker exec -it 容器id或者容器名 /bin/bash

#退出容器终端
ctrl+p 然后 ctrl+q

#完全退出容器的终端 
ctrl+d 或者 exit

2.使用docker运行

docker run直接运行容器,本地不存在则远端拉取镜像并运行。以nginx为例:

docker run -d nginx 

-d参数,让docker在后台运行该容器。

3.端口映射

此时无法通过外部的浏览器访问这个nginx服务器,因为docker内部的端口并没有暴露出来,可以运行下面的命令进行端口映射。

docker run -d -p 80:80 nginx    #本地端口:容器端口

image-20230220152210310

4.文件挂载

-v参数可以挂载本地文件目录,一般在运行数据库容器时,需要将数据持久化,否则在容器退出后所有的数据将丢失;例如:

docker run -d -p 80:80 -v /data/nginx:/data nginx

以上命令将本机的/data/nginx目录挂到到容器中的/data目录,如果容器中对/data目录的任何修改都将直接映射到外部磁盘上。

5.容器执行命令

交互式

docker exec -it [CONTAINER ID] /bin/bash

-i选项代表使用交互方式,-t代表打开一个终端。/bin/bash是本次要运行的命令,一个shell程序。

这样就相当于打开了一个交互式终端进入了容器内部,所做的操作都只在容器内部生效,如同进入了一个虚拟机。

6.配置阿里镜像源

echo '{ "registry-mirrors": ["https://ra9q5uam.mirror.aliyuncs.com"] }' > /etc/docker/daemon.json
重启docker:service docker restart
查看是否成功:docker info

7.使用DockerFile创建镜像及容器

Docker使用一种称为Dockerfile的文件来描述容器的组成以及相关配置,Dockerfile是docker的特有文件,必须满足相关格式。

假如要创建自己的web程序,需要将所有依赖都打包到一个镜像中,以某个操作系统为底座来构筑自己的镜像

作为样例,我们使用python的flask框架来编写一个最简单的网页程序,并打包成一个镜像。

参考:https://flask.palletsprojects.com/en/2.1.x/quickstart/

1、新建文件夹,新建app.py文件

mkdir flask && cd flask && vim app.py
from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello_world():
    return "<p>Hello, World!</p>"

if __name__ == "__main__":
     app.run(host="0.0.0.0", debug=True)

2、新建一个文件命名为dockerfile

#这是一个注释
FROM ubuntu

RUN apt-get update
RUN apt-get install -y nginx
RUN apt-get install -y python3
RUN apt-get install -y python3-flask
COPY app.py /var/hello.py
ENV FLASK_APP=hello
CMD cd /var && flask run

dockerfile只有一种格式,就是

# 注释
INSTRUCTION arguments 

dockerfile必须以FROM开始,代表在某个基础镜像上做接下来的操作

RUN命令可以在镜像内部运行某个命令

COPY命令可以将本地文件拷贝到容器内部,注意只能拷贝当前目录下的内容

ENV命令则可以简单的对容器注入环境变量

CMD命令用于指定当容器运行时需要执行的默认命令,CMD命令可以被docker run命令覆盖

3、构建镜像

docker build -t flask:latest .

-t 参数用于指明镜像的名称和tag,后面紧跟一个目录,docker会自动查找该目录下的dockerfile并根据该文件来进行镜像构建。

构建完成后可以使用docker image ls命令来查看当前机器上所有的镜像列表

4、运行该镜像容器

docker run -it -p 83:5000 flask

Docker-compose

参考:https://www.linuxmi.com/docker-install-wordpress.html、https://www.cnblogs.com/jiumo/p/15959062.html

Docker系列 了解Docker Compose的配置文件

我们往往需要多个容器配合来完成某个上层应用,例如网站程序经常需要搭配一个数据库使用,这种情况可以把网站后台程序和数据库分别放到两个容器中运行,Docker compose工具提供一种简化的方式来组织多个容器,并且能够用一个命令快速的部署多个容器。

Docker compose使用YAML文件来描述容器以及容器之间的关系,使用Docker compose一般分为3步

1、定义每个容器的Dockerfile

2、定义一个称为docker-compose.yaml的文件,用来描述多个容器之间的关系

3、使用docker compose up命令一键部署应用程序

暂无评论

发送评论 编辑评论


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