安装就是正常的Linux下载命令,下载下来就是docker-ce
yum install docker
安装之后,使用命令来设置docker的开机自启动
systemctl enable docker
没有使用过的朋友可以输入docker来查询所有的命令,带介绍。
Docker下载基础镜像的命令也非常简单,直接docker pull xxx 就会自动查询并下载镜像,也可以在镜像后标明要下载镜像的版本号 如:xxx:5,这种格式。
如果不确定要下载的公共镜像,可以使用docker search xxx来查询要下载的镜像,从中间挑一个你需要的镜像来使用。
- 下载镜像之后输入docker images 来查看下载的镜像
- 然后使用docker run –d –p 80:80 xxx镜像名称 来运行
- -d:让容器在后台运行。
- -P:将容器内部使用的网络端口映射到我们使用的主机上,在外部也可以使用运行的端口来访问。
- 还可以使用—net来设置docker的网络模式
- Docker 一共有四种网络模式。
- Bridge模式:这是docker默认的网络模式,它会为容器分配网络空间、设置IP等,并且将容器连接到一个虚拟网桥上,具体没有去了解。
- None模式:这个模式一般不使用,这种模式下,容器拥有属于自己的网络空间,但是没有任何网络配置,所有的配置都需要手动添加
- Container模式:这个模式和host模式比较像,但是它是指定容器和已经存在的某一个容器共享网络环境,所以它使用起来是这样的--net=container:镜像名称_or_镜像id
- Host模式:docker一般都是完全隔离的网络环境,但是如果使用了host模式,docker就不会再去创建虚拟的网卡、IP等,而是直接使用宿主机的网络,但是除了网络,其他还是和宿主机隔离的。
运行之后就可以使用docker ps 来查看正在运行的容器,加上-a代表显示所有容器,包括未运行的容器。-q代表只显示容器id
Docker top 容器id 可以用来查看容器内部运行的进程
如果想查看容器日志 的话,可以使用docker logs –f 容器id
容器的一些命令:
- 停止容器:docker stop 容器id 。
- 重启容器:docker start 容器id
- 删除容器:docker rm 容器id,删除容器之前必须先停止容器,否则删除不了
- 删除镜像:docker rmi 镜像id,删除镜像之前必须先删除容器
- 构建镜像
- 构建一个镜像需要先创建Dockerfile,格式为:from 基础镜像名称(基于哪个镜像) volume /文件夹(挂在哪个目录下) add xxx.jar(把jar包添加到镜像中) run xxx(在镜像中执行什么命令) expost 端口(对外映射的本地端口,需要在docker run 的时候使用-p才起作用) ,然后使用docker build -t xxx:1.0.0 . -f Dockerfile来生成镜像
- Docker pause 容器id 暂停容器,暂停之后方便docker commit命令
- Docker commit 容器id 提交当前容器为新的镜像
- Docker unpause 容器id 继续暂停的容器
- 有的微服务可能会操作到文件上传下载,但是容器是单独隔离的,所以可以用-v来挂在目录,如-v /java:/java ,如果没有该文件夹会自动创建,默认挂载文件是可读写的,也可以指定只读,如:-v /java:/java:ro,可以同时挂载多个文件夹,只用多次使用-v就可以
- 运行镜像创建容器时,可以使用—name来指定创建的容器名称,不指定的话会自动创建名称,容器名称必须唯一
- docker logs -f -t --since="2019-05-30" --tail=10 docker_container_name
- --since : 此参数指定了输出日志开始日期,即只输出指定日期之后的日志。
- -f : 查看实时日志 -t : 查看日志产生的日期 -tail=10 : 查看最后的10条日志
因为docker默认从官方下载镜像,所以速度会比较慢,下面附一些docker镜像地址
Docker国内镜像地址
Docker 官方中国区
https://registry.docker-cn.com
网易
http://hub-mirror.c.163.com
中国科技大学
https://docker.mirrors.ustc.edu.cn
阿里云
https://pee6w651.mirror.aliyuncs.com
腾讯云
https://mirror.ccs.tencentyun.com
daemon.json格式
{
"registry-mirrors":["https://registry.docker-cn.com","https://mirror.ccs.tencentyun.com"]
}修改完daemon.json文件后重新加载文件并重启docker
systemctl daemon-reload
service docker restart