docker安装
# 添加yum源
yum install epel-release -y
# 清除缓存
yum clean all
# 安装utils包【首次安装Docker需要安装所需的软件包】
# 【device mapper存储驱动程序需要这两者device-mapper-persistent-data和lvm2】
yum install -y yum-utils device-mapper-persistent-data lvm2
# 设置docker的yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 安装Docker
yum install docker-ce
# 开机启动
systemctl enable docker
# 运行Docker
systemctl start docker
# 检查安装版本
docker --version
# 修改docker配置
vim /etc/docker/daemon.json
# 配置内容
{
# 指定Docker镜像仓库地址,中国官方镜像地址
"registry-mirrors": ["https://registry.docker-cn.com"],
# Docker数据存储路径
"data-root": "/home/docker",
# 指定Docker容器日志驱动
"log-driver":"json-file",
# 指定日志文件最大值
"log-opts": {"max-size":"100m"}
}
docker服务管理
# 状态
systemctl status docker
# 运行
systemctl start docker
# 停止
systemctl stop docker
# 重启
systemctl restart docker
# 重新加载配置
systemctl daemon-reload
镜像管理
# 搜索镜像jenkins且收藏数大于30的镜像
docker search -f stars=30 jenkins
# 拉取镜像
docker pull jenkins
# 删除镜像
docker rmi -f jenkins
# 强制删除镜像
docker rmi centos
容器管理
# 拉取容器镜像
docker pull bitnami/wildfly:10.1.0
# 创建镜像容器
docker run -d --privileged=true -p 18080:8080 -p 19090:9090 --restart=always --name dockerName --user=root -v /app-data/wildfly:/bitnami/wildfly -v /app-data/config:/riswms bitnami/wildfly:10.1.0
# 查看所有创建的容器列表
docker ps -a
# 查看运行中的容器列表
docker ps
# 查看容器执行日志
docker logs dockerName
# 启动容器
docker start dockerName
# 停止容器
docker stop dockerName
# 重启容器
docker restart dockerName
# 删除容器
docker rm dockerName
# 修改容器
docker update --restart=always dockerName
# 查看容器创建详情
docker inspect dockerName
# 查看容器映射路径
docker inspect dockerName | grep Mounts -A 20
# 清空docker日志文件内容-不用重启
# 删除需要重启容器【/var/lib/docker/containers/容器全名/容器全名-json.log】
echo "" > /var/lib/docker/containers/容器全名/容器全名-json.log
# 清空方式二 【.,$d】表示从当前行到末行全部删除掉
.,$d
进入容器(root用户进入)
docker exec -it --user root dockerName bash
创建容器参数说明
docker run -d --restart=always --name 设置容器名 bitnami/wildfly:10.1.0
# 容器[--restart]的重启策略参数值详细信息:
no # 默认策略,容器退出时不重启容器;
on-failure # 在容器非正常退出时(退出状态非0)才重新启动容器
on-failure:3 # 在容器非正常退出时重启容器,最多重启3次
always # 无论退出状态是如何,都重启容器;
unless-stopped # 在容器退出时总是重启容器,不考虑在Docker守护进程启动时已经停止的容器
# 容器权限[--privileged=true]-获取宿主机root权限参数[rtur | false]
# 容器端口映射[-p 18080:8080]左边对外,右边对内
# 容器运行用户[--user=root]容器指定root用户运行
# 容器路径映射[-v /riswms/rtxext/wildfly:/bitnami/wildfly]左边对外,右边对内
# 容器镜像[bitnami/wildfly:10.1.0]镜像名称
说明二:
创建一个容器并运行
docker run -it -d -p 80:80 --name datahttpd -v /data/:/var/www/httpd/ httpd
参数说明如下:
-i:以交互模式运行容器,通常与-t同时使用。
-t:为容器重新分配一个伪输入终端,通常与-i同时使用。
-d:后台运行容器,并返回容器ID。
-p:端口映射,格式为“宿主机端口:容器端口”。
--name:为容器指定一个名称。
-v:把宿主机上的一个目录挂载到镜像里,格式为“宿主机目录:镜像内挂载的路径”,必须为绝对路径。
docker服务查看IP
# 查询宿主机ip
ip addr show docker0
# 查看容器IP
iptables -t nat -L -n
# 查看NAT表的转发情况
iptables -t nat -vnL DOCKER --line-number
# 查看宿主机IP路由转发功能【1表示开通0则未开通】
cat /proc/sys/net/ipv4/ip_forward
写入环境变量
# 写入环境变量
echo 'export PATH=$PATH:/opt/node/bin'>>/etc/profile
echo 'export PATH=$PATH:/var/jdk1.8'>>/etc/profile
# 刷新配置
source /etc/profile
# 给jenkins用户添加权限
chown -R jenkins <path>
# jenkins加入到root组
gpasswd -a root jenkins
# 时间设置
echo "Asia/Shanghai" > /etc/timezone
# jenkins系统时间
System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')
# 根据pid查看对应端口
netstat -nap | grep PID
# 动态域名服务器地址(vue)
BASE_URL: window.location.protocol + '//' + window.location.host,
portainer 添加 docke 节点
vim /usr/lib/systemd/system/docker.service
通过Dockerfile定制一个简单的Nginx镜像
- 新建并进入目录 mkdir mynginx && cd mynginx
- 创建文件并编辑 touch Dockerfile && vim Dockerfile
# 插入内容
FROM nginx
RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html
# 说明:
Dockerfile指令介绍如下。以下仅介绍简单指令,如需了解更多,请参见官方网站https://docs.docker.com/。
FROM语句:表示使用nginx镜像作为基础镜像,一个Dockerfile中FROM是必备的指令,并且必须是第一条指令。
RUN语句:格式为RUN <命令>,表示执行echo命令,在显示器中显示一段“Hello, Docker!”的文字。
构建镜像
docker build -t nginx:v3 .
-t nginx:v3:指定镜像的名称和版本。
.:指定上下文路径,镜像构建命令将该路径下所有的内容打包给Docker引擎帮助构建镜像。
- 查看部署的nginx镜像,版本为v3
docker images