Docker是一种运行于Linux和Windows上的软件,用于创建、管理和编排容器。Dorker是Github上开发的Moby开源项目的一部分。Docker公司提供包含支持服务的商业版本的Docker。
Docker可以安装在Windows、Mac和Linux上,除此之外还可以在云上安装,也可以在个人电脑上安装。安装方式也有多种:手工安装、脚本安装和通过向导方式安装等。 官方提供安装文档
在Linux服务器上安装Docker是常见的安装场景,并且安装过程非常简单。通常难点在于Linux不同发行版本之间的轻微区别。比如Ubuntu和CentOS之间的差异。但是理论上,在这两个版本之间也都是兼容可执行的。唯一要求是这台机器是Linux操作系统,并且能访问该网站:https://get.docker.com/
当前可选的Docker版本的有两种:社区版和企业版。因为Docker官网在国外,在国内下载比较慢,所以可以更换国内的一些下载源,比如阿里云和网易的,可以参考此篇:更换yum源为阿里云。
配置镜像加速器
针对Docker客户端版本大于 1.10.0 的用户
可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://loh7jpwn.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
参考文献:菜鸟
以下是楼主工作和业余时间总结备用
注意:[]中的参数代表其可有可无。
如果忘记命令语法或参数,可以使用help命令来查看帮助文档
docker [command] --help
docker images
docker search images
具体版本信息可以在Docker Hub官网上查,比如如下搜索rabbitmq的版本结果
Supported tags and respective Dockerfile links
3.8.1-rc.1, 3.8-rc
3.8.1-rc.1-management, 3.8-rc-management
3.8.1-rc.1-alpine, 3.8-rc-alpine
3.8.1-rc.1-management-alpine, 3.8-rc-management-alpine
3.8.0, 3.8, 3, latest
3.8.0-management, 3.8-management, 3-management, management
3.8.0-alpine, 3.8-alpine, 3-alpine, alpine
3.8.0-management-alpine, 3.8-management-alpine, 3-management-alpine, management-alpine
3.7.20, 3.7
3.7.20-management, 3.7-management
3.7.20-alpine, 3.7-alpine
3.7.20-management-alpine, 3.7-management-alpine
只需要在镜像名称后边加上版本号,比如拉取rabbitmq
docker pull rabbitmq:3.8.0-management即可
docker pull imageName[:version]
docker inspect ec2bfee7c206|容器ID
注意:创建了容器的镜像删不掉,需要先删除容器
docker rmi 容器ID
docker官方和个人发布的镜像由于版本等各种原因,漏洞很多,已统计Docker Hub超过30%的官方镜像包含高危漏洞。此外,由于网络等问题也会造成docker pull下载镜像的速度很慢,基于这种情况,我们可以手动制作docker系统镜像。
DockerFile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本。
构建三步骤
docker build -f dockerfile文件 -t 新镜像名字:TAG .[当前目录]
查看一下centos的dockerfile文件https://hub.docker.com/
FROM scratch【所有镜像的根源,类似于Java中的Object类】
ADD centos-7-x86_64-docker.tar.xz /
LABEL org.label-schema.schema-version="1.0" \
org.label-schema.name="CentOS Base Image" \
org.label-schema.vendor="CentOS" \
org.label-schema.license="GPLv2" \
org.label-schema.build-date="20191001"
CMD ["/bin/bash"]
DockerFile基础知识
DockerFile保留字
Docker执行DockerFile的流程
注意:在用非root用户进行创建容器时,如果用到了目录映射,一定要给记得赋权。
chown -R 1000 [jenkins|目录]
docker ps [-a|-q]
常用参数解析
docker run -d --name redis [-p 6379:6379] \
[-v $PWD/conf/redis.conf:/redis.conf] \
[-v $PWD/data:/data redis:5.0.3] \
[redis-server --appendonly yes] \
[--requirepass "chenfu"]
常用参数解析
docker logs [61e5de4d49b4|容器ID]
docker start 容器ID|容器名称 ..
docker start $(docker ps -aq)
批量停止、重启和删除同理。
docker stop 容器ID|容器名称
docker restart 容器ID|容器名称
注意:需要先停止容器
docker rm 容器ID
docker exec -it 容器ID /bin/bash
常用参数解析