Docker基础学习

目录

初始docker

安装docker

docker架构

配置docker镜像加速器

docker进程相关命令

docker镜像相关命令

docker容器相关命令

docker容器的数据卷


初始docker

我们写代码会接触好几个环境,如开发环境、测试环境、生产环境。代码从开发环境打包到测试环境,然后从测试环境打包到开发环境上,但是会出现一个问题,如果开发环境的jdk版本为8,测试环境的jdk环境为7,那么测试代码时就可能出错。因此由于环境不同造成的问题很常见,那么如何解决这类问题呢?
有一种方式就是,将环境和代码装进一个容器里,测试人员就在容器里面进行测试,规避了因为环境不同而造成的问题。最后再将该容器给运维人员进行测试。

docker是一个开源的应用容器引擎,诞生2013年初,基于go语言实现,docker可以让开发者打包他们的应用及依赖包(环境)一起打包到一个轻量级、可移植的容器中,然后发布到任何流行的linux机器上,并且容器之间相互隔离互不影响。

安装docker

本文基于centos 7安装一个docker,docker官网地址:https://www.docker.com/

1、首先准备一个linux系统,确保网络联通

2、使用以下终端命令安装docker

docker架构

docker由三部分组成:客户端(clients)、核心(hosts))、仓库(registries);安装完docker会有一个守护进程启动daemon,里面包含镜像和容器,镜像来源于远程的仓库。客户端docker发送命令给进程,这样进程就启动起来了。

配置docker镜像加速器

一般有阿里云、网易云、中科大等,在这里选择阿里云的镜像加速器;

1、打开浏览器搜素“阿里云”,进行登录;

2、菜单栏的产品与服务搜搜“容器镜像服务”,页面出来后点击菜单栏最下面的“镜像加速器”,根据操作文档配置;

3、直接将该命令复制粘贴到终端控制台即可;

4、cat 验证一下配置是否成功。

docker进程相关命令

1、启动:systemctl start docker

2、查看状态:systemctl status docker

3、停止:systemctl stop docker

4、重启:systemctl restatrt docker

5、开机启动 :systemctl enable docker (每次开机自启动)

docker镜像相关命令

1、查看:docker images

第一列为镜像名称,第二列为版本号。第三列为标识号,第四列为创建时间,第五列为镜像大小;

2、搜索:docker search redis

3、拉取镜像:docker pull redis:版本号(默认为latest)

具体版本号可以在官方查看。

4、删除:

docker rmi 镜像ID

docker rmi 名字:版本

一次性删除所有镜像:

(查看镜像列表ID)docker images -q

docker rmi  ' docker images -q'

docker容器相关命令

1、查看容器:docker images

2、创建并进入容器:docker run -it --name=c1(取名) centos:7 /bin/bash

现在就进入到容器内部了

使用-id参数不会自动进入容器内部:docker run -id --name=c2 centos:7 

直接进入容器:docker exec -it c2 /bin/bash

3、退出容器:exit

4、查看容器(正在运行的容器):docker ps

注意:使用-it创建的容器,使用exit退出后,该容器也自动退出了。因此使用该命令无法查看。

5、查看历史容器:docker ps -a 

6、删除容器:docker stop c2

7、启动容器:docker start c2

8、删除容器:docker rm c1

9、删除所有容器:

查看所有容器ID:docker ps -aq

docker rm 'docker ps -aq'  (只有把容器停掉才可以删掉)

10、查看容器信息:docker inspect c2

docker容器的数据卷

1、docker容器删除后,在容器中产生的数据也会随之销毁。

2、docker容器和外部机器不可以直接交换,但是可以间接,外部机器将数据传进数据卷中,就可以直接同步交换。

3、容器之间通过挂载的方式完成数据交互。

数据卷式宿主机中的一个目录或文件;当容器目录和数据卷目录绑定后,对方的修改会立即同步。

一个数据卷可以被多个容器同时挂载。

创建容器时,使用-v参数,设置数据卷。

docker run ... -v 宿主机目录(文件):容器内目录(文件)...

容器目录必须是绝对路径;如果目录不存在,则会自动创建;可以挂载多个数据卷;

例1:一个容器挂载一个或多个数据卷

(1)查看容器:docker ps -a

(2)创建容器并挂载数据卷:docker run -it --name=c1 -v /root/data:/root/data_container centos:7 /bin/bash

docker run -it --name=c1 -v /root/data1:/root/data_container1 -v /root/data2:/root/data_container2 -v /root/data3:/root/data_container3 centos:7 /bin/bash

例2:两个容器挂载同一个数据卷

docker run -it --name=c2 -v /root/data:/root/data_container centos:7 /bin/bash

docker run -it --name=c3 -v /root/data:/root/data_container centos:7 /bin/bash

  • 13
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值