doker安装 拉取 执行

镜像 只读的模板,一个独立的文件系统 包含容器需要的数据
容器 镜像的运行实例 简易的环境
仓库 存镜像
安装

sh 方式快速安装

#!/bin/bash
stop_firewalld_status(){
	count = `systemctl status firewalld | grep running | wc -l`
	if [[ ! $count -eq 1 ]]; then
	systemctl stop firewalld
    systemctl disable firewalld
    systemctl restart network
    echo "success to stop firewalld"
	else
	echo "the firewalld has been stop"
	fi
}

update_yum_package(){
	yum -y update
	yum remove docker docker-common docker-selinux docker-engine
	yum install –y yum-utils device-mapper-persistent-data lvm2 unzip
	yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
	yum install -y docker-ce
	systemctl start docker
    systemctl enable docker
}

modify_docker_config(){
	cd /lib/systemd/system
	sed -i 's#ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock#ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock --registry-mirror=https://9cpn8tt6.mirror.aliyuncs.com#g' docker.service
	systemctl daemon-reload
	systemctl restart docker
}

stop_firewalld_status
update_yum_package
modify_docker_config

1.检测内核版本 内核版本>3.10

uname -r    

2.安装yum源

yum -y install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

3.安装docker

yum install docker-io

4.启动

service docker start
systemctl start docker

方法2参考 先卸载 再安装

yum -y update
yum remove docker docker-common docker-selinux docker-engine
yum install –y yum-utils device-mapper-persistent-data lvm2 unzip
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
-- 这一步才是核心
yum install -y docker-ce

systemctl start docker
systemctl enable docker

5.版本
docker version
6.开启tcp远程连接
/lib/systemd/system
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
systemctl daemon-reload
service docker restart
ss -lt |grep 2375
开放端口
iptables -I INPUT -ptcp --dport 2375 -j ACCEPT

7.加入开机
service docker start #启动
docker chkconfig docker on #加入开机启动

docker run hello-world
docker images
docker ps -a (所有容器) -q (容器id)
docker search fastDFS
docker pull xxx
docker rmi xxx
docker stop /start /run xx xx

/opt/docker/redis
docker run -d -p 6379:6379 -it --name redis-zxy redis
–name 指定别名 -i 交互模式 -t分配伪终端 命令行 -p 映射端口 -d 后台运行

docker search xxx 搜索镜像
docker pull xxx 拉取镜像
docker run xxx 运行容器
docker images 查看镜像
docker ps 查看容器 -a (所有容器) -q (容器id)

docker rmi xxx 移除
docker stop /start /run xx xx 启停

运行具体操作,以redis为例
docker search redis
docker pull xxx
docker run -d -p 6379:6379 -it --name redis-zxy redis
–name 指定别名 -i 交互模式 -t分配伪终端 命令行 -p 映射端口 -d 后台运行
进入
docker exec -it redis-zxy /bin/bash
redis-cli
set test 1
退出
docker exit

docker ps -a 历史容器
docker rm 移除容器

dockerFile->打包生镜像
在这里插入图片描述
from 定制一个基础镜像
copy
add 源 --> 目标

# eclipse所用

FROM registry.cn-shanghai.aliyuncs.com/moc_hanyunapp/library:jdk-1.8

MAINTAINER huzhenxz@gmail.com

RUN mkdir -p /iot-server

WORKDIR /iot-server

EXPOSE 9006
EXPOSE 5005

ENV TZ=Asia/Shanghai
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8

ADD target/iot-server.jar ./app.jar
# target仅仅是eclipse用  代码仓库里保留 ./

ENTRYPOINT java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -Djava.security.egd=file:/dev/./urandom -jar ./app.jar $PARAMS

=========================================================
#! /bin/bash  这是环境中的dockerfile
# 定义变量
API_NAME=iot-server
API_VERSION=1.0
API_PORT=9006
IMAGE_NAME=iot-server:1.0
CONTAINER_NAME=$API_NAME
JAR_NAME=iot-server.jar
ALIYUN_IMAGE_NAME=iot-server-1.0.241.001

# 删除Docker容器
docker stop $API_NAME
docker rm -f $API_NAME

sleep 5

# 删除Docker镜像
docker rmi $IMAGE_NAME


# 构建Docker镜像
cd /opt/xgit/$API_NAME/
# 这里 . 是只找到上下文中的dockerFIle  所以要有这个文件哦
docker build -t $IMAGE_NAME .

# 根据名称获取镜像名称获取镜像ID
IMAGE_ID=`docker images -q --filter reference=$IMAGE_NAME`

echo $IMAGE_ID

# 推送Docker镜像
docker tag $IMAGE_ID registry.cn-shanghai.aliyuncs.com/moc_hanyunapp/moc_develop:$ALIYUN_IMAGE_NAME
docker push registry.cn-shanghai.aliyuncs.com/moc_hanyunapp/moc_develop:$ALIYUN_IMAGE_NAME
echo "推送Docker镜像成功"


# 启动Docker容器
docker run -d -m 2048M --net host -v /opt/iot:/opt/iot -e  PARAMS="--spring.profiles.active=dev --spring.cloud.nacos.discovery.server-addr=10.100.2.241:8848 --spring.cloud.nacos.config.server-addr=10.100.2.241:8848 --spring.cloud.nacos.config.file-extension=yaml --spring.cloud.nacos.config.group=DEFAULT_GROUP"  -e "SPRING_PROFILES_ACTIVE=dev" --name $CONTAINER_NAME $IMAGE_NAME
~                                                                                                                                                        
=====================================================

expose 暴露docekr端口
env 设置环境变量
add 添加复制  target 搜索并复制
ENTRYPOINT  类似于 sh cmd 可执行
后面是远程debug的一种设置
在后面是生随机数的一种
docekr build==>eclipse 自带build功能 详情见 
https://blog.csdn.net/qq_28434529/article/details/106421023

=====额外运行
docker run -d -m 1024M -p 9009:9009 -e "SPRING_PROFILES_ACTIVE=dev" --name xx-server xxx-server:dev

check_installed iot-server-1.0.119.001
docker run -d --name='14-iot-server-1.0'  --restart=always --net='host' -e TZ="Asia/Shanghai"  -e 'JVM_XMS'='1024m' -e 'JVM_XMX'='2048m' -e 'JVM_MS'='-XX:MetaspaceSize=1024M' -e 'JVM_MMS'='-XX:MaxMetaspaceSize=2048m' -e PARAMS="--spring.profiles.active=dev --spring.cloud.nacos.discovery.server-addr=$local_ip:8848 --spring.cloud.nacos.config.server-addr=$local_ip:8848 --spring.cloud.nacos.config.file-extension=yaml --spring.cloud.nacos.config.group=DEFAULT_GROUP"  -p '9006:9006/tcp'  -p '9098:9098/tcp' -v '/mnt/user/appdata/iot':'/opt/iot':'rw' 'registry.cn-shanghai.aliyuncs.com/moc_hanyunapp/moc_product:iot-server-1.0.119.001'

1.打包 配置注册中心–>2.配置docker服务(eclipse先第三部)–>3.编辑dockerFile–>4.执行推到服务–>5.服务docker tag id 阿里云tag–>6.docker push 阿里云tag
阿里云
https://cr.console.aliyun.com/cn-hangzhou/instances/repositories
sudo docker login --username=xxx@qq.com registry.cn-hangzhou.aliyuncs.com
docker tagid aliyuntagid
docker push aliyuntagid


版权声明:本文为qq_28434529原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。