Docker下载
配置阿里云Docker Yum源
[root@xingdian ~]# yum install -y yum-utils device-mapper-persistent-data lvm2 git
[root@xingdian ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
查看docker版本
yum list docker-ce --showduplicates
安装
[root@xingdian ~]# yum install docker-ce -y
或者指定版本安装
[root@xingdian ~]# yum install docker-ce-19.03.0.ce -y
启动Docker服务
[root@xingdian ~]# systemctl enable docker
[root@xingdian ~]# systemctl start docker
查看docker版本状态
[root@xingdian ~]# docker -v
Docker version 19.03.12, build 48a66213fe
查看docker运行状态:
[root@xingdian ~]# docker info
国内镜像站
https://www.daocloud.io
国外镜像站
https://hub.docker.com
要列出本地所有有效的镜像,可以使用命令
[root@docker ~]# docker images
[root@docker ~]# docker image list
[root@docker ~]# docker image ls
Docker容器
Docker容器可以使用命令创建:
[root@docker ~]# docker run imagename
查看Docker容器
[root@docker ~]# docker ps -a
拉取镜像
[root@docker ~]# docker pull centos #下载最新版本
[root@docker ~]# docker pull daocloud.io/library/centos:7.8.2003 #指定版本
查看镜像详情
[root@docker ~]# docker image inspect 镜像id
删除镜像:
删除一个或多个,多个之间用空格隔开,可以使用镜像名称或id
[root@docker ~]# docker rmi daocloud.io/library/mysql
强制删除:–force
如果镜像正在被使用中可以使用–force强制删除
[root@docker ~]# docker rmi docker.io/ubuntu:latest --force
删除所有的镜像
[root@docker ~]# docker rmi $(docker images -q)
#-q查出所有id号
只查看所有镜像的id:
[root@docker ~]# docker images -q
容器操作
1.启动容器并指定名为server并放后台运行
[root@docker ~]# docker run --name server -it -d centos:latest /bin/bash
2.使用镜像 nginx:latest,以后台模式启动一个容器,将主机的 80 端口映射到容器的 80 端口,主机的目录 /data 映射到容器的 /data。
[root@docker ~]# docker run -p 80:80 -v /data:/data -d nginx:latest
3.使用镜像nginx:latest以交互模式启动容器,容器内执行/bin/bash命令。
[root@docker ~]# docker run -it nginx:latest /bin/bash
参数:
• -v:文件映射,格式为:主机目录:容器目录
• -d: 后台运行容器,并返回容器ID;
• -i: 以交互模式运行容器,通常与 -t 同时使用;
• -p: 端口映射,格式为:主机(宿主)端口:容器端口
• -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
• --name=“nginx-lb”: 为容器指定一个名称;
• --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
• --dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
• -h “mars”: 指定容器的hostname;
• -e username=“ritchie”: 设置环境变量;
• --cpuset-cpus=“0-2” or --cpuset-cpus=“0,1,2”: 绑定容器到指定CPU运行;
–privileged 以特权模式运行
4.查看容器
只查看运行状态的容器:
[root@docker ~]# docker ps
[root@docker ~]# docker ps -a
-a 查看所有容器
只查看所有容器id:
[root@docker ~]# docker ps -a -q
列出最近一次启动的容器
[root@docker ~]#docker ps -l
删除容器
[root@docker ~]# docker rm 容器id或名称
要删除一个运行中的容器,添加 -f 参数
根据格式删除所有容器:
[root@docker ~]# docker rm $(docker ps -a -q)
Docker部署私有仓库
仓库镜像,Docker hub官方已提供容器镜像registry,用于搭建私有仓库
拉取镜像:
[root@xingdian ~]# docker pull daocloud.io/library/registry:latest
运行容器:
[root@xingdian ~]# docker run --name registry-1 --restart=always -d -p 5000:5000 daocloud.io/library/registry
#–name 给运行的容器改个名字 --restat 不管docker是否重启与否,运行的这个docker都重新加载 -d 后台运行 -p 端口映射 前面的自定义只要不和主机中的端口起冲突就行 后面的是这个私有仓库的端口 如运行不成功就关闭防火墙重启docker
查看运行的容器:
[root@xingdian ~]# docker ps -a
#-a 查看所有
连接容器查看端口状态:
[root@xingdian ~]# docker exec -it 容器的Id或更改的名字 /bin/sh #这里是sh 不是bash
/ # netstat -antpl #查看5000端口是否开启(容器内查看)
下面的操作在找台机器
在找台机器查看能否访问该私有仓库, 看看状态码是不是200
[root@xingdian registry]# curl -I 127.0.0.1:5000 # 主机的ip
HTTP/1.1 200 OK
Cache-Control: no-cache
Date: Thu, 08 Oct 2020 05:34:32 GMT
为了方便,下载1个比较小的镜像,buysbox
[root@xingdian registry]# docker pull busybox
上传前必须给镜像打tag 注明ip和端口:
[root@xingdian ~]# docker tag busybox 192.168.245.136:5000/busybox:v1
上传
[root@xingdian ~]# docker push 192.168.245.136:5000/busybox #会报以下错误
The push refers to repository [192.168.245.136:5000/busybox]
Get https://10.11.67.100:5000/v2/: http: server gave HTTP response to HTTPS client
默认为https 要改成http
[root@xingdian ~]# vim /etc/docker/daemon.json #加入以下内容
{ “insecure-registries”:[“192.168.245.136:5000”] }
重启docker:
[root@xingdian ~]# systemctl restart docker
再次上传
[root@xingdian ~]# docker push 192.168.245.136:5000/busybox
查看私有仓库里的所有镜像:
[root@xingdian ~]# curl 192.168.245.130:5000/v2/_catalog
{“repositories”:[“busybox”]}
查看私有仓库里的镜像版本:
[root@docker ~]# curl 10.11.67.110:5000/v2/busybox/tags/list
{“name”:“busybox”,“tags”:[“v1”,“v2”]}
将容器的文件系统打包成tar包
将容器的文件系统打包成tar文件,也就是把正在运行的容器直接导出为tar包的镜像文件。
打包
export
有两种方式 :
第一种:
[root@xingdian ~]# docker export -o 打包的镜像名字.tar 容器名字或id
第二种:
[root@xingdian ~]# docker export 容器名字或id > 打包的镜像名字.tar
导入镜像归档文件到其他宿主机:
import
[root@xingdian ~]# docker import 打包的镜像名字.tar 镜像名字
将镜像打包成tar包
打包
save
将镜像打包,与下面的load命令相对应
[root@xingdian ~]# docker save -o 打包的镜像名字.tar 镜像名字
保存一台宿主机上的镜像为tar文件,然后可以导入到其他的宿主机上。
导入
与上面的save命令相对应,将上面sava命令打包的镜像通过load命令导入
[root@xingdian ~]# docker load < 打包的镜像的名字.tar
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)