Docker学习

 

启动docker服务

systemctl start docker

查看docker状态

systemctl status docker

停止docker

systemctl stop docker

重启

systemctl restart docker

开机启动docker

systemctl 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

删除所有容器(· 是 ~ 不加shift打出来的,不是单引号)

sudo docker ps -aq

sudo docker rm ·sudo 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值