2.Docker安装
安装之前可以先卸载
yum -y remove docker
安装:
yum install -y docker
启动:
systemctl start docker
systemctl start docker.service
3 Docker镜像
3.1列出镜像
docker images
Repository:镜像所在仓库名称
Tag:镜像版本
Image ID:镜像ID
Created:镜像创建时间
Size:镜像大小
3.2搜索镜像
如果你需要从网络中查找需要的镜像,可以通过以下命令搜索
docker search 镜像名称
NAME:仓库名称
DESCRIPTION:镜像描述
STARS:用户评价,反应一个镜像的受欢迎程度
OFFICIAL:是否官方
AUTOMATED:自动构建,表示该镜像由Docker Hub自动构建流程创建的
3.3拉取镜像
我们可以使用命令从一些公用仓库中拉取镜像到本地,下面就列举一些常用的公用仓库拉取镜像的方式!
3.3.1从docker hub拉取
Docker Hub的网址:https://hub.docker.com/
需求:从Docker Hub仓库下载一个CentOS 7版本的操作系统镜像。
命令如下:
docker pull centos:7
Docker Hub是docker默认的公用Registry,不过缺点是国内下载会比较慢。
3.3.2从ustc拉取(建议使用)
在宿主机器编辑文件(centos7不支持vim命令,但是支持vi命令):
vi /etc/docker/daemon.json
请在该配置文件中加入(没有该文件的话,请先建一个):
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
最后,需要重启docker服务
systemctl restart docker
之后再使用pull命令拉取镜像,这时候是从ustc获取镜像,而且速度杠杠的。
docker pull centos:7
3.4删除镜像
删除指定镜像
docker rmi repository:tag
docker rmi imageID
删除所有镜像
docker rmi $(docker images -q)
注意:
删除时,如果镜像的image id一致,则需要按照一定顺序进行删除,因为镜像之间有关联(reference)。
3.5导入导出镜像(镜像迁移)
导出镜像:
docker save repository:tag/imageId > /root/xx.tar.gz
docker save -o mynginx.tar mynginx
-o 输出到的文件执行后,运行ls命令即可看到打成的tar包
导入镜像:
docker load < /root/xx.tar.gz
docker load -i mynginx.tar
-i 输入的文件执行后再次查看镜像,可以看到镜像已经恢复
4.Docker容器
4.1创建并运行容器
创建容器命令:docker run
创建容器常用的参数说明:
-i:表示运行容器
-t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
--name :为创建的容器命名。
-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。
-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
以交互方式运行容器:
docker run -i -t --name 容器名称repository:tag /bin/bash
docker run -it --name 容器名称imageID /bin/bash
以守护进程方式运行容器:
docker run -di --name 容器名称repository:tag
docker run -di --name 容器名称imageID
注意:通过run创建并进入容器之后,如果使用exit命令退出容器,则容器停止。
再次进入该容器,先使用start启动容器,再使用exec/attach命令进入容器。
4.2启动容器
docker start 容器名称或者容器ID
4.3进入容器
进入正在运行的容器的命令如下:
docker exec -it 容器名称或者容器ID /bin/bash
docker attach 容器名称或者容器ID
两者之间的区别:
attach进入容器之后,如果使用exit退出容器,则容器停止。
exec 进入容器之后,使用exit退出容器,容器依然处于运行状态。
4.4查看容器
docker ps :查看正在运行的容器
docker ps -a:查看历史运行过的容器
docker ps -l:查看最近运行过的容器
4.5停止容器
docker stop 容器名称或者容器ID
4.6删除容器
删除指定容器:
docker rm 容器名称或者容器ID
删除所有容器:
docker rm ‘docker ps -a -q’
4.7复制文件
docker cp 源文件目标文件
比如:
docker cp /root/boot.war my-centos:/usr/local/
说明:
/root/boot.war是宿主机器的路径
my-centos是容器的名称
/usr/local/是容器内的路径
注意:源文件可以是宿主机器也可以是容器中的文件,同样,目标文件可以是容器也可以是宿主机器的文件。