1、在centOS7中安装步骤:
1、先在虚拟机中安装一个干净的centOS7系统环境
docker是个应用容器引擎,一般主要是运维吧。因此最好的学习方式是在Linux系统中来学习使用,这样更接近真实的项目开发环境。这里根据我看的视频课,需要先更新一下yum环境。更新yum环境的命令:sudo yum update
2、安装需要的软件包
具体的命令:yum install -y yum-utils
3、 设置yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4、 更新yum软件包索引
具体的命令:yum makecache fast
5、开始安装docker
yum install docker-ce docker-ce-cli containerd.io
安装完成后,可以输入docker -v 来查看版本信息。当出现如图所示,就证明已经安装好了。
2、常用命令
2.1 启动docker
systemctl start docker
2.2 查询docker的启动状态
systemctl status docker
2.3 设置开机启动docker服务
systemctl enable docker
2.4 查看已经下载的镜像信息
docker images
2.5 停止docker
systemctl stop docker
镜像相关的命令
镜像: Docker镜像是由文件系统叠加而成(是一种文件的存储形式);是docker中的核心概念,可以认为镜像就是对某些运行环境或者软件打的包,用户可以从docker仓库中下载基础镜像到本地,比如开发人员可以从docker仓库中拉去(下载)一个只包含centos7系统的基础镜像,然后在这个镜像中安装jdk、mysql、Tomcat以及自己开发的应用,最后把这些环境打成一个新的镜像。开发人员将这些镜像提交给测试人员进行测试,测试人员只需要在测试环境下运行这个镜像就可以了,这样可以保证开发人员和测试人员的环境完全一致。
3.1 查看镜像
docker images
3.2 拉取镜像
这里我以拉取centos7为例子,来写命令。注意,我这里没有指定版本号,它默认会拉取centos7的最新镜像,如果需求是某一个版本,那就需要指定版本号了。
docker pull centos:7
3.3 删除镜像
删除镜像的话有两个参数可选,可以根据镜像的id删除镜像,也可以根据镜像的名称删除镜像。
docker rmi name/id
4.查看&创建并启动交互式容器
容器,也是docker中的核心概念,容器是由镜像运行产生的运行实例。镜像和容器的关系,就如同java语言中类和对象的关系。
Docker提供的关于容器的操作有:
- 查看容器
- 创建容器
- 启动容器
- 停止容器
- 文件拷贝
- 目录挂载
- 查看容器ip地址
- 删除容器
查看容器
查看正在运行的容器使用命令:docker ps
查看所有容器使用的命令:docker ps -a
创建并启动容器
可以基于已有的镜像来创建和启动容器,创建与启动容器使用命令:docker run
其中,可以携带一些参数,具体的参数说明如下:
- -i : 表示运行容器
- -t : 表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
- –name : 为创建的容器命名。
- -v : 表示目录的映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个 -v 做多个目录或者文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
- -d : 在run后面加上-d 参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加 -i -t两个参数,创建后就会自动进去容器)。
- -p : 表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个 -p 做多个端口映射
创建并启动交互式容器:这里我以刚才拉去的那个centos7镜像为例,来创建交互式容器。
命令:docker run -it --name=mycentos7 centos:7 /bin/bash
(这里后面的意思是进入到bin目录,然后用bash脚本来操作)
成功后的截图如下:
注意看,启动后,这里的centos7i变化了,说明我们进入到创建的容器里面去了。
创建并启动守护式容器 : 创建并启动守护式容器后,容器可以在后台运行。
在创建交互式容器之后,如果退出容器的话,容器处于停止状态,可以使用命令再次启动容器,使用命令进入容器并操作。
对于一个需要长期操作的容器,我们可以创建一个一个守护式容器。值得注意的是,守护容器的名字避免重复。
# 创建并启动守护式容器
docker run -di --name=mycentos2 centos:7
# 启动容器后再进入容器
docker exec -it mycentos2 /bin/bash
具体运行的截图
可以看到,已经创建成功了。
停止容器 :docker stop mycentos2
(可以看到stop后面接的是容器的名字
这里放一下截图,可以看到,容器停止后,使用命令查看容器的状态,显示已经停止了
启动容器: docker start mycentos2
可以看到截图,显示已经成功启动。
文件拷贝
- 将Linux宿主机中的文件拷贝到容器内可以使用命令:
# docker cp 需要拷贝的文件或者目录 容器名称:容器目录
# 创建一个文件adb.txt
touch abc.txt
目录挂载
可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而去影响容器。
创建容器时添加-v参数,后边为宿主机目录容器目录,例如: docker run -di -v/usr/local/test:/usr/local/test–name=mycentos3 centos7
# 创建linux宿主机要挂载的目录
mkdir /usr/local/test
//创建并启动容器mycentos3,并挂载linux中的/usr/local/test目录到容器的/usr/local/test;也就是在linux中的/usr/local/test中操作相当于对容器相应的目录操作
docker run -di -v /usr/local/test:/usr/local/test --name=mycentos2 centos:7
#在Linux下创建文件
touch /usr/local/test/def.txt
#进入容器
docker exec -it mycentos2 /bin/bash
#删除容器(注意:只能删除停止运行的容器,不能够删除正在运行的容器)
docker rm mycentos2
部署nginx
拉去镜像
docker pull nginx
查看下载的nginx镜像
[root@iZbp1gpz4k8nk9ffoq0vxuZ ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 92b11f67642b 6 weeks ago 187MB
运行nginx
docker run -d --name nginx01 -p 80:80 nginx