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

docker1

1.

Java jdk

环境不一致

虚拟机

linux 容器

 

docker

容器的封装

将所需的环境打包给你

秒级启动

不用考虑cpu 是否支持虚拟化

 

单项目打包

整套项目打包

新开源技术

环境一致性

持续集成 jenkins ci cd

微服务 接口拆封 分别调用

弹性伸缩 服务器的量 按量付费

docker就是用来生成镜像的

https://docs.docker.com/install/linux/docker-ce/centos/

docker官网

yum list | grep docker

启动:systemctl start docker

 

镜像容器

镜像加速器

容器镜像加速器

https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

mkdir -p /etc/docker

 

tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://oi55stdg.mirror.aliyuncs.com"] } EOF

 

镜像更新

systemctl daemon-reload

systemctl restart docker

镜像是容器的模板

 

docker image ls

列出所有镜像

docker search ubuntu

// 查看镜像版本

官方发布的 和非官方提供的

https://hub.docker.com

 

 

docker image history ubuntu

docker image pull centos

docker image pull centos:6 指定6版本

docker image push

docker image rmi ubuntu

 

docker image prune 移除

docker image tag centos guozimo123/centos7:latest

docker image export

docker image import

docker image save

docker image load

docker image build

 

docker账号:guozimo123

docker login

docker push guozimo123/centos7:latest

必须和你的账号对应才能提交成功

docker container run hello-world

从一个镜像运行一个容器

docker container ls -a

docker image inspect 查看容器内容

docker container run -it centos /bin/bash

// 进入容器中

docker container ps -a

查看所有容器

// nginx 映射80端口 宿主机8080映射容器的80端口 nginx暴露80端口

docker run -p 8080:80 nginx

// 后台运行

docker run -d -p 8080:80 nginx

curl http://39.105.91.188:8080

docker logs 容器id 查看容器日志

一个容器起一个服务

docker container stop xxx

docker container rm xxx

docker container ps -a 查看所有的容器

删除所有容器

docker container rm $(docker ps -a -q)

打印id

镜像增加层:

docker commit -a "guozimo" -m"add myroot.text" + 容器id myroot:latest

docker commit -a "guozimo" -m"add myroot.text" 82aa65e32253 myroot:latest

docker image ls

可以查看到myroot

docker image inspect myroot

结果如下

"RootFS": {

"Type": "layers",

"Layers": [

"sha256:af0b15c8625bb1938f1d7b17081031f649fd14e6b233688eea3c5483994a66a3"

]

},

 

 

docker container logs 34e3d0f600b5

docker container kill xxx 停止容器

 

 

从指定容器中导出一个文件到locahost

docker export -o centos.star xxx 容器id

导回去

docker import centos.star

// 没有指定容器 prune 会把镜像删除 删除没有tag的

 

docker run -it -e name='guozimo' centos /bin/bash

// 指定环境变量

echo $name 可以看到环境变量

exec 进入一个正在运行的docker

 

 

 

制作个性化镜像

docker run -it ubuntu /bin/bash

cd /root

touch love.txt

// 把容器变为镜像 组合新镜像

docker container commit -m"我的个性化ubuntu" -a"guozimo" xxx guozimo/myubuntu:v1

docker image ls

docker run -it xxxx /bin/bash

 

Dockerfile 制作个性化容器 将express项目定制化成一个镜像暴露出3000端口让外面访问

mkdir nodeapp

cd nodeapp

ls

vi .dockerignore

npm install express-generator -g

// express 项目生成器

express app

ls

vi Dockerfile

Dockerfile重的内容如下

FROM node FROM 继承的镜像 这个镜像的上层镜像来源

COPY ./app /app 把我本地文件app文件拷贝到镜像的app文件中

WORKDIR /app 指定当前的目录为app

RUN npm install 镜像中执行shell脚本

EXPOSE 3000 向外暴露3000端口

CMD npm start

 

ls

docker build -t express-demo .

docker image ls 可以查看到express-demo这个镜像

docker run -it de01d81c6539 /bin/bash

ls

npm start

exit

// 3000为监听的项目的端口号

docker run -it -p 8090:3000 de01d81c6539 /bin/bash

npm start // 希望命令自动输入 希望后台运行

curl http://localhost:8090

修改Dockerfile文件

exit

vi Dockerfile

增加CMD npm start // 启动容器时执行

docker build -t express-demo .

docker image ls 查看最新的id

docker run -d -p 8090:3000 9cdcf367050e

或者docker run -d -p 8090:3000 9cdcf367050e npm start

另一个窗口登录服务器 curl http://localhost:8090

 

 

数据盘

容器删除掉 日志不能丢掉 保留 放到宿主机上

volumn

停掉所有的容器

docker container stop $(docker container ps -a -q)

docker container kill $(docker container ps -a -q)

docker container rm $(docker container ps -a -q)

docker container ls

创建数据卷

docker volume create nginx-logger

在宿主机上

docker volume ls

docker volume inspect nginx-logger

从根目录cd 进入cd /var/lib/docker/volumes/nginx-logger/_data

docker volume create nginx-html

docker run -d --name nginx1 --mount src=nginx-html,dst=/usr/share/nginx/html nginx

新开窗口根目录 宿主目录小 cd /var/lib/docker/volumes/nginx-html/_data

ll

查看nginx记录

宿主机和容器内容同步

进入容器

docker container exec -it 3e2e0dd9d312 /bin/bash

cd /usr/share/nginx/html

ls

第二种方法

docker run -d --name nginx2 -v nginx-html:/usr/share/nginx/html nginx

// a82befe8966c9062253ec637e1ca1229375648b6149219b543135bdd9a05f954 输出内容的前12位是id

删除数据卷

// 停掉容器 rm掉然后删除数据卷

docker volume rm nginx-html

docker volume ls -f dangling=true

docker volume prune

docker volume ls

 

 

bind-mount 挂在宿主机任何位置 任意目录 都可以

docker run -v /mnt:/mnt -it --name logs centos bash

cd /mnt

touch mnt.txt

exit

/mnt 切到宿主机

cd /mnt

ls

 

 

 

多个nginx 写到一个数据盘中

继承数据盘

 

 

 

 

 

 

 

 

 

 

 

docker search node 查找node镜像

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相关文章:

  • 在J2ME和WAP中实现电话呼叫功能
  • Linux系统如何更改主机名,即 [root@xxxx] 改成 [root@localhost]
  • 解决Netbeans和Eclipse中的图片路径问题
  • 安装docker-compose时报错Command python setup.py egg_info failed with error code 1 in /tmp/pip-build*的解决
  • 显示一个java跳转页面
  • ImportError: No module named 'ConfigParser' 降级处理即可pip install docker-compose==1.21.2
  • 给你的2D游戏添加3D效果
  • docker2 和docker-compose
  • docker3 docker-compose.yml 文件编写
  • nginx基础1
  • nginx1
  • 承认多元化,保持宽容
  • nginx2
  • 如何编写高质量的代码——来自《代码大全(第2版)》的启示
  • nginx3 gzip等
  • [nginx文档翻译系列] 控制nginx
  • EOS是什么
  • Hibernate最全面试题
  • HTTP那些事
  • iOS 系统授权开发
  • Netty 4.1 源代码学习:线程模型
  • Spark RDD学习: aggregate函数
  • vue:响应原理
  • 对超线程几个不同角度的解释
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 聊聊flink的TableFactory
  • 实现简单的正则表达式引擎
  • 微服务框架lagom
  • 新手搭建网站的主要流程
  • 终端用户监控:真实用户监控还是模拟监控?
  • postgresql行列转换函数
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • ​低代码平台的核心价值与优势
  • # Java NIO(一)FileChannel
  • #define用法
  • #pragam once 和 #ifndef 预编译头
  • (1)(1.11) SiK Radio v2(一)
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (6)设计一个TimeMap
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (一)认识微服务
  • (一一四)第九章编程练习
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .net core webapi 大文件上传到wwwroot文件夹
  • .ui文件相关
  • @vue/cli脚手架
  • [ vulhub漏洞复现篇 ] JBOSS AS 4.x以下反序列化远程代码执行漏洞CVE-2017-7504
  • [20171101]rman to destination.txt
  • [AutoSAR系列] 1.3 AutoSar 架构
  • [BZOJ1178][Apio2009]CONVENTION会议中心
  • [C#]获取指定文件夹下的所有文件名(递归)
  • [C++]运行时,如何确保一个对象是只读的
  • [ComfyUI进阶教程] animatediff视频提示词书写要点