栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Docker学习

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Docker学习

 

启动docker服务

systemctl start docker

查看docker状态

systemctl status docker

停止docker

systemctl stop docker

重启

systemctl restart docker

开机启动docker

systenctl enable docker
Docker镜像相关命令

查看本地镜像

sudo docker images

TAG:版本(默认是latest) 

搜索

sudo docker images

 下载redis

sudo docker pull redis

若要指定版本,去dockerhub官网,搜索:hub.docker.com 

sudo docker pull redis:5.0

 

删除 镜像

通过id删除

sudo docker rmi 7614ae9453d1

 通过名字删除

sudo docker rmi redis:latest

删除所有镜像

Docker容器相关命令  

创建容器

sudo docker run -it --name c1 redis:5.0 /bin/bash

-i :保持容器一直运行

-t : 给容器分配一个终端,可以接收命令

--name=c1(= 也可以换为空格)

redis:5.0: 选择一个镜像

/bin/bash:进入容器的初始化指令(相当于打开shell)

此时已经进入容器内部。

退出容器

exit

 查看正在运行的容器

sudo docker ps

 如果通过-it创建的容器,一退出就会关闭,ps指令看不到。如果想看历史容器,需要使用

sudo docker ps -a

 第二种方式创建容器:

sudo docker run -id --name=c2 redis:5.0 

-d:后台运行创建容器。(不会立刻进入容器,需要命令才能进入。通过exit不会自动关闭)

 进入容器:

sudo docker exec -it c2 /bin/bash

 退出后容器还是up状态,没有关闭

总结

停止容器

sudo docker stop c2

启动容器

sudo docker start c2

 删除容器

sudo docker rm c1

删除所有容器

sudo docker ps -aq

sudo docker rm 'docker ps -aq'

 注意:正在运行的容器不能被删除

查看容器信息

sudo docker inspect c2

 总结:

 容器的数据卷

思考:

1:Docker容器删除后,在容器中产生的数据还在吗?

        不在了

2:在宿主机(linux虚拟机)创建一个Docker容器,Docker容器和外部机器(Windows)可以直接交换文件吗?

        不可以(宿主机和外部机器可以)

3:容器之间想要进行数据交互怎么做?

数据卷

 配置数据卷

示例

sudo docker run -it --name=c1 -v /home/miao/study/dockerStudy/test1/data:/root/data_container ubuntu /bin/bash

测试:

在宿主机data目录下创建文件,容器中也会同步创建

 

在容器中写入文件,宿主机也会同步。

将容器删除后宿主机中数据仍然存在

 可重新挂载

 挂载多个目录

sudo docker run -it --name=c3 -v /home/miao/study/dockerStudy/test1/data:/root/data2 -v /home/miao/study/dockerStudy/test2/data:/root/data3 ubuntu

 两个容器挂载同一个数据卷,实现两个容器的数据交换

将/home/miao/study/dockerStudy/data 当做数据卷

创建第一个容器 

创建第二个容器

 在c5中写入数据,在c4中同步存在

数据卷容器 

示例:

 先创建数据卷容器c3

sudo docker run -it --name=c3 -v /volume ubuntu

查看c3信息

创建c1 c2 容器

sudo docker run -it --name=c1 --volumes-from c3 ubuntu
sudo docker run -it --name=c2 --volumes-from c3 ubuntu

在c2中创建txt文件,c1 c3中会同步

 对比c1 c2 c3信息

 应用部署

 

 

  示例:

 登录mysql

 使用SQLyog连接

宿主机ip:192.168.149.135

 

 

镜像 

 

 

 

 例如:下载的时候分层下载

 镜像制作

 

示例:

注意:id 可以不写全,有区分性就行 

 压缩:

sudo docker save -o miao.tar miao_images:1.0

通过ll命令查看

删除 miao_images,再通过压缩文件还原

 注意:新的镜像包含部分改变,不是目录挂载的都可以生效。

 例如:ubuntu20.04的dockerfile

 

 

示例:

第四行写错了:应该是CMD java -jar app.jar 

1:准备一个程序包

  2. 编写dockerfile文件

 构建镜像 

 查看images, 创建容器并且做端口映射

 

案例(将centos7改为ubuntu):

编写dockerfile

vim ubuntu_dockerfile

build

sudo docker build -f ./ubuntu_dockerfile -t miao_images:1.0 .

-f:指定dockerfile 的文件路径

-t:设置新镜像的名称以及版本 

根据创建的镜像创建容器

sudo docker run -it --name=c2 miao_images:1.0

 创建成功。

参考:黑马程序员Docker教程。

黑马程序员Docker容器化技术,从零学会Docker教程_哔哩哔哩_bilibili

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/854223.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号