当前位置: 首页 > news >正文

editplus建设网站教学软文吧

editplus建设网站教学,软文吧,用什么网站做查重报告,私人音乐服务器目录 一、Docker (一)Docker基础命令 (二)docker镜像命令 (三)docker容器命令 (四)docker运维命令​​​​​​​ 一、Docker 容器是一种虚拟化技术,容器是镜像实例…

目录

一、Docker

(一)Docker基础命令

(二)docker镜像命令

(三)docker容器命令

(四)docker运维命令​​​​​​​


一、Docker

容器是一种虚拟化技术,容器是镜像实例化对象,就像Java编译后Class构造出的一个个实例对象,本文除了生硬命令大全,还会穿插一些个人对docker的理解。

什么是 Docker? - 知乎

(一)Docker基础命令

1.docker程序操作

(1)启动docker

systemctl start docker

(2)停止docker

systemctl stop docker

(3)重启docker

systemctl restart docker

(4)随服务启动而自启

systemctl enable docker

(5)查看运行状态

systemctl status docker

(6)查看docker版本号信息

docker info
docker version

2.docker帮助命令

使用场景:忘记docker命令参数有哪些

docker --help
docker pull --help
docker push --help

(二)docker镜像命令

1.查看镜像

使用场景:查看当前服务器中docker 镜像列表

docker images

2.搜索镜像

使用场景:查找可安装的镜像和版本

docker search 镜像名docker search chrome

镜像名、描述、关注star数量、是否官方

搜索+筛选条件

例如:筛选stars数量在大于50的镜像

docker search --filter=STARS=50 chrome

3.拉取镜像

使用场景:从docker hub或公司内部镜像hub,下载镜像到本地

docker pull 镜像名称:tag

备注:没有tag默认拉取最新,等同于 docker pull mysql:latest

4.运行镜像

使用场景:拉取一个mysql镜像,运行镜像容器

docker pull mysqldocker run -it -d --name testmysql -p 8081:8080 mysql:latest 

参数说明

参数说明
-it与容器进行交互式启动
-d        可后台运行容器
--name给运行的容器自定义命名
-p

端口映射

-p 宿主机端口:容器内端口

--restart=always自启动容器

5.容器操作

(1)停止容器

docker stop 容器ID 或 容器名称

(2)启动容器

docker start 容器ID 或 容器名称

(3)重启容器

docker restart 容器ID 或 容器名称

(4)删除容器

docker rm -f 容器ID 或 容器名称

删除容器前,需要先停止容器,运行中的容器无法删除。

6.删除镜像

docker rmi -f 镜像ID/镜像名称

删除多个镜像

docker rmi -f 镜像ID/镜像名称 镜像ID/镜像名称 镜像ID/镜像名称

强制删除镜像

docker image rm 镜像ID/镜像名称

7.保存镜像

使用场景:想将本地镜像保存为tar压缩文件,方便用于镜像转移至其他机子上,并 加载这个保存的镜像。

docker save  镜像ID/镜像名称 -o 镜像保存位置路径

例如:保存mysql镜像到当前路径位置,文件名为:mysql-20230314.tar

docker save mysql -o ./mysql-20230314.tar

8.加载镜像

使用场景:保存的镜像文件,进行加载恢复(解压tar文件)

docker load -i ./mysql-20230314.tar

我们把解压的镜像 run下

docker run mysql-20230314

9.镜像标签   tag

使用场景:有时候,我们需要对一个已有的镜像进行分类或者版本迭代,相对已有的镜像进行打标签标注版本。

docker tag 源镜像名:原tag  新镜像名:新tag

例如:将mysql最新版,打tag为测试环境1.0.0

docker tag mysql:latest mysql:test-1.0.0 

(三)docker容器命令

1.查看正在运行的容器

使用场景:

docker ps

2.查看所有容器(含已停止的容器)

docker ps -a

3.运行一个容器

docker run -it -d --name 容器名称 -p 宿主机端口号:容器端口号  镜像名:tag  /bin/bash

例如: 拉取mysql镜像,并启动一个mysql 把它取别名为mysql-test 并交互式运行

docker pull mysql:7.5.0docker run -it -d --name mysql-test -p 8081:8080  mysql:7.5.0 /bin/bash

备注:宿主机 端口有时候可能被占用,需要查看端口占用 情况。

linux

netstat -untlp

mac

lsof -i tcp:8080

杀进程

kill -9 进程号

每个容器都是独立安全应用,并相互隔离,容器与宿主机端口建立绑定关系(容器端口映射),那么访问宿主机的该端口,就可以访问到对应容器。

4.端口映射

使用场景:拉取镜像,运行容器,设置容器端口和宿主机端口映射关系。

例如:

启动mysql镜像,容器命名为mysql-test 映射宿主机端口8081和容器端口8080,当 我们访问8081相当于访问到容器mysql-test

docker run -it -d  --name mysql-test -p 8081:8080 mysql:latest /bin/bash

容器端口如果被其他容器占用,如何修改?

方式一:进入容器内,修改配置文件

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

方式二:进入容器内

docker attach 容器ID/容器名称 /bin/bash

进入容器内部后退出容器内部

exit

(1)启动容器

docker start 容器ID/容器名称

(2)停止容器

docker stop 容器ID/容器名称

(3)重启容器

docker restart 容器ID/容器名称

(4)杀掉容器

docker kill 容器ID/容器名称

5.容器文件拷贝

使用场景:

容器内部拷出文件

docker cp 容器ID:容器内部路径 容器外部路径

容器外部拷入文件

docker cp 容器外部路径 容器ID:容器内部路径

6.查看容器日志

使用场景:

docker logs -f --tail=日志数量 容器ID/容器名称
docker logs -f --tail=10 ef4ccceb9b6b
docker logs --tail=10 ef4ccceb9b6b

7.容器数据挂载

使用场景:以防容器销毁删除,造成数据丢失,将容器内数据挂载到宿主机对应位置

-v 宿主机文件存放位置:容器内文件位置

如此操作,就将容器内指定文件 挂载 宿主机对应位置,-v可多次使用,即一个容器可同时挂载多个文件到宿主机上。

12.更换容器名称

使用场景:容器已启动,不想删除重启容器情况下进行容器重命名。

docker rename 容器ID 新容器名称

13.修改容器配置

使用场景:不想删除容器,又想让容器配置变更。

例如:

修改参数,设置开机启动。

docker update --restart=always 容器ID或容器名称
docker container update --restart=always 容器ID或容器名称

14.提交一个镜像

使用场景:在已有镜像基础上,做了一些修改,希望保存封装成一个新的镜像。

docker  commit -m=”提交信息“ -a=”作者信息“ 容器ID/容器名称  提交后的新镜像名称:tag

15.dockerfile

(1)环境变量

在dockerfile中定义系统环境变量名和值,在项目代码中通过获取环境变量函数,来接收参数变量(获取系统环境变量名的值)

FROM python:3.7.4
MAINTAINER jack
ENV webhook_url=https://oapi.dingtalk.com/robot/send?access_token=xxx
ENV secret_token=xxx
ENV check_interval=60
ENV db_username=root
ENV db_password=abc123456
ENV db_host=127.0.0.1
ENV db_port=3306
ENV db_name=tonghuashun
COPY . /tonghuashun
workdir /tonghuashun
run pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
cmd ["python","main.py"]

run和cmd区别

触发时机不同

RUN 在构建镜像时 即docker build

CMD 在运行容器时(打完镜像后运行容器时)即docker run

  • 在Python项目代码中获取环境变量
import os
EN_DB_USERNAME=os.getenv("db_username")
EN_DB_PASSWORD=os.getenv("db_password")
EN_DB_HOST=os.getenv("db_host")
EN_DB_PORT=os.getenv("db_port")
EN_DB_NAME=os.getenv("db_name")
  • 在NodeJS项目代码中,获取环境变量
process.env.NODE_ENV //获取对应环境变量的值
  • 在Golang项目代码中,获取环境变量
package main
import ( "fmt"  "os")
func main() {  name := os.Getenv("NAME") fmt.Println("name is:", name)}

(2)docker run时传入环境变量参数

docker run -p 9000:9000 -e environment=dev -e cluster=0 -d me/app   

(3)其他

FROM nginx:1.20.0
COPY nginx.conf /etc/nginx/nginx.conf
COPY dist/  /usr/share/nginx/html/
COPY replace.sh /
RUN chmod 777 /replace.sh
CMD ["/replace.sh"]

COPY 当前dockerfile目录 的文件名 nginx.conf、文件夹dist、文件replace.sh 复制到容器指定目录中。

RUN 在docker build时运行 (打镜像时)

CMD 在docker run时运行(运行容器时)

16.docker-compose

docker-compose.yml 文件分为三个主要部分:services、networks、volumes

  • services:主要用来定义各个容器
  • networks:定义需要使用到的network
  • volumes:定义services使用到的volume 本地数据卷

参数说明

参数说明
version 版本
build

使用当前目录下的Dockerfile进行构

image

指定运行容器使用的镜像

container_name

默认运行出来的容器名称
command

覆盖容器启动后默认执行的命令Dockerfile定义的CMD

注意:当Dockerfile定义了entrypoint的时候,docker-comose.yml定义的command会被覆盖

enrtypoint

执行命令行,可以覆盖Dockerfile中定义的entrypoint命令

links

链接到其它服务中的容器。

使用服务名称(同时作为别名)或服务名称:服务别名 (SERVICE:ALIAS) 格式都可以

例如:

version: '3'

services: order-service links: - user-service - pay-service - redis

external_links

链接到 docker-compose.yml 外部的容器,参数格式跟 links 类似。

prot

暴露容器端口信息

expose

指定内部端口,但不映射到宿主机,只被连接的服务访问。

enviroment

定义的变量会覆盖.env文件中定义的重名环境变量。

ports

将容器的端口80映射到宿主机的端口8080

volumes

设置容器的数据卷路径

networks

容器使用的网络设置。

depends_on

基于云镜像

基于本地dockerfile

version: '3'
services:web:build:context: ./dockerfile: mydockerfile

完整示例:

version: '3.8'
networks:test_network:external: true
services:myapidemo:image: 1312958948/myapidemo:1.1container_name: myapidemobuild: .restart: alwaysports:- "9020:5000"volumes:- /root/apilogs/logs:/app/logsnetworks:- test_networknginxapi:image: nginxcontainer_name: nginxapirestart: alwaysports:- "80:80"- "443:443"volumes:- /root/nginx/www:/usr/share/nginx/html - /root/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf - /root/nginx/logs:/var/log/nginx - /root/nginx/certs:/etc/nginx/certs networks:- test_networkmysql:image: mysql:8.0container_name: mysqlrestart: alwaysports:- "3306:3306"         volumes:           - /var/lib/docker/volumes/mysqldata/_data:/var/lib/mysql39environment:MYSQL_ROOT_PASSWORD: Aa123456   MYSQL_DATABASE: MyTestTZ: Asia/Shanghainetworks:- test_network redistest:image: rediscontainer_name: redistestrestart: alwaysports:- "6379:6379"command: redis-server --requirepass 123456     networks:-  test_network

(四)docker运维命令

1.查看docker工作目录

sudo docker info | grep ”Docker Root Dir“

2.查看docker磁盘占用总体情况

du -hs /var/lib/docker

3.查查看docker磁盘使用具体情况

docker system df

4.删除无用容器和镜像

(1)删除异常停止的容器

docker  rm `docker ps -a | grep. Exited | awk '{print $1}'`

5.查找大文件

find / -type f -size +100M -print0 | xargs -0 du -h |sort -nr

6.查找指定docker使用目录下大于指定大小文件

例如:

这边查查查找到事‘/var/lib/docker/overlay2/*’开头且文件大小大于100MB的文件

find / -type f -size +100M -print0 | xargs -0 du -h |sort -nr | grep ‘/var/lib/docker/overlay2/*’

http://www.tj-hxxt.cn/news/42891.html

相关文章:

  • 成都网站建设推广详微商软文大全
  • 投资公司网站建设方案北京关键词快速排名
  • 河北网站建设价格郴州网络推广外包公司
  • 网站开发培训训网络营销和网站推广的区别
  • 网页设计与网站开发期末如何找外链资源
  • 做博物馆网站最重要性百度收录权重
  • 充值网站建设百度搜索引擎怎么做
  • 一起做网站17怎么下单友情链接seo
  • 怎样做网络推广营销方案百度seo价格查询系统
  • 域名会影响网站排名吗html模板网站
  • 泉州网站开发网址链接生成器
  • 怎样做一个企业网站本网站三天换一次域名
  • 一般网站建设多少钱临沂网站seo
  • 专业的西安免费做网站站长统计ios
  • 2017最佳网站设计营销方案怎么写
  • 东莞做一个企业网站要多少钱潍坊网站建设公司
  • 南宁公司网站建设珠海百度关键词优化
  • 织梦网站名称标签小说关键词自动生成器
  • 蚌埠网站制作公司哪家好百度推广手机app下载
  • 私人可以做org后缀网站吗网站seo分析报告
  • wordpress美图网站关键字优化公司
  • 做外贸什么网站好新网域名
  • 网站建设 财务归类自己可以做网站吗
  • 甘肃省城乡城乡建设厅网站首页搜索大全
  • 专门帮人做网站的公司网络营销百科
  • 用个人电脑做网站的步骤网站seo优化免费
  • 网站开发架构有哪些免费注册网站有哪些
  • 校园网站建设的维护怎么做网站推广多少钱
  • 免费域名注册优惠优化百度搜索
  • php 开源 建站网站怎样才能在百度被搜索到