docker服务创建和管理

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 

# 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 '

Hello, Docker!

' > /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

你可能感兴趣的:(docker,容器,运维)