怎么查看网站提交百度的度,网站维护简单吗,90设计网图片,腾讯广告一级代理名单docker的安装和常用命令 安装老版本新版本 镜像源配置常用命令基本命令清理文件复制构建镜像上传镜像 补充权限不足无目录权限无用户权限 容器访问jenkins推送镜像失败修改主机名编写Dockerfile 注#xff1a;这里的安装是针对于cetnos7。 安装
老版本
安装老版本可能遇到报… docker的安装和常用命令 安装老版本新版本 镜像源配置常用命令基本命令清理文件复制构建镜像上传镜像 补充权限不足无目录权限无用户权限 容器访问jenkins推送镜像失败修改主机名编写Dockerfile 注这里的安装是针对于cetnos7。 安装
老版本
安装老版本可能遇到报错missing signature key
yum -y install docker.x86_64新版本
# 换成阿里镜像仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum remove docker docker-common docker-selinux docker-engine
yum -y install docker-ce
systemctl start docker设置docker镜像阿里云镜像源需要到官网注册后才能获取推荐使用阿里的。若某些官方镜像用阿里的拉取不到可以参考 DaoCloud/public-image-mirror 的README.md和issue里的说明获取其他镜像源。github访问不了可以访问gitcodepublic-image-mirror
镜像源配置
vi /etc/docker/daemon.json
{registry-mirrors: [https://dockerhub.icu,https://docker.chenby.cn,https://docker.1panel.live,https://docker.awsl9527.cn,https://docker.anyhub.us.kg,https://dhub.kubesre.xyz]
}
systemctl daemon-reload
systemctl restart docker#不配置直接使用
docker pull docker.anyhub.us.kg/docker.io/biluoer/hadoop:3.1.3-base常用命令
基本命令
# 镜像命令
docker pull nginx # 拉取镜像
docker push biluoer/nginx # 推送镜像
docker build -t biluoer/nginx . # 构建镜像
# 保存镜像为一个压缩包
# docker save -o [保存的目标文件名称] [镜像名称]
docker save -o nginx.tar nginx:latest
# 加载压缩包为镜像
docker load -i nginx.tar
# 将某个容器构建为镜像
docker commit -m 提交信息 -a 作者名 容器名称或id tag名称
# 例如将当前运行的容器nginx构建为镜像
docker commit nginx biluoer/nginx:v1# 容器相关命令
# 创建并运行一个容器
#--name指定容器名称-p端口映射-d后台运行最后的nginx是镜像名称
docker run --name containerName -p 80:80 -d nginx
# 让运行的容器暂停
docker pause nginx
# 让暂停状态的容器恢复运行
docker unpause 容器名称或容器ID
# 停止运行的容器
docker stop 容器名称或容器ID
# 运行的容器
docker start 容器名称或容器ID
# 删除容器
docker rm 容器名称或容器ID
# 重新运行容器
docker restart 容器名称或容器ID
# 停止并删除容器stoprm
docker rm -f 容器名称或容器ID
# 进入容器bash-shell类型还可以为sh等
docker exec -it nginx bash
# 让容器直接使用某命令例如命令ip addr
docker exec nginx ip addr清理
#命令可以用于清理磁盘删除关闭的容器、无用的数据卷和网络以及dangling镜像(即无tag的镜像)
docker system prune
# 作用和上面一样。-f表示强制删除不会询问
docker system prune -f
# 清理更彻底会把没有正在使用的镜像都删掉小心使用
docker system prune -a文件复制
# 本地到服务器
docker cp 本地路径 容器id或者容器名字:容器内路径
# 服务器到本地
docker cp 容器id或者容器名字:容器内路径 本地路径构建镜像
# 使用当前目录的 Dockerfile 创建镜像-t指定构建出的镜像的tag名称
docker build -t biluoer/ubuntu:v1 . 上传镜像
docker login -u username -p pwd
docker tag hadoop:3.1.3 biluoer/hadoop:3.1.3
docker push biluoer/hadoop:3.1.3注 旧版登录成功后密码会经过base64编码保存在$HOME/用户名/.docker/config.json的auth属性中进过该命令echo auth值 | base64 --decode即可看到明文密码。 新版登录会报错WARNING! Using --password via the CLI is insecure. Use --password-stdin。不允许密码明文出现但其实还是登录成功了密码统一保存到config.json中了。解决方法 方法1将密码写到文件中使用cat .docker.pwd | docker login -u username --password-stdin方法2密码保存到环境变量使用与方法1类似。方法3官方推荐了一些工具进行安全的登录。
补充
权限不足
无目录权限
#若挂载目录在容器内访问没有权限可以在挂载时加上参数
--privilegedtrue 无用户权限
# 以root用户身份进入容器
docker exec --user root -it kafka bash容器访问
容器无法连接另一个容器。
方法1使用主机ip
#容器内默认只能访问docker提供的网关不能访问其他容器。解决方法run命令时加上参数
--networkhost
#值bridge(默认,容器不具有一个公有IP)、host(使用宿主机的网络接口和IP地址)、none(使用127.0.0.1的本机网络)...方法2--link 参数被用来在容器之间创建网络连接使得容器可以互相解析对方的名字和访问相应的服务
#run命令时加上一下参数
--link 当前运行的容器名称:映射名称
# 然后可以通过映射名称端口号服务其他容器的服务方法3创建网络让不同容器使用相同的网络--link参数现已不推荐使用
# 创建桥接网络bridge是默认驱动可以不加
docker network create [--driver bridge] hadoop-net
#创建桥接网络并指定子网配置范围192.168.1.1-192.168.1.254
docker network create --subnet192.168.1.0/24 hadoop-netjenkins推送镜像失败
登录后使用docker推送没有问题但使用jenkins推送报错denied: requested access to the resource is denied。
原因因为jenkins在推送镜像的时候使用的是jenkins的伪用户因此无法直接在jenkins完成登录。
解决方法将之前生成的config.json拷贝到jenkins的目录下即可
cd /home/用户名/
cp .docker/config.json /var/lib/jenkins
chown -R jenkins.jenkins .docker# 如果jenkins是以容器方式安装的
docker cp .docker jenkins:/root/
# 或者先在任务的执行脚本中执行一次登录命令让它自动生成修改主机名
直接进入容器中修改/etc/hosts这种方式在重启容器后修改的内容会丢失。
如果是容器未运行的状态通过在使用run命令时加上参数 --hostname 主机名 就可以指定容器运行后的主机名。
编写Dockerfile
# 指定基础镜像
FROM ubuntu:16.04
# 配置环境变量JDK的安装目录
ENV JAVA_DIR/usr/local# 拷贝jdk和java项目的包
COPY ./jdk8.tar.gz $JAVA_DIR/
COPY ./docker-demo.jar /tmp/app.jar# 安装JDK
RUN cd $JAVA_DIR \ tar -xf ./jdk8.tar.gz \ mv ./jdk1.8.0_144 ./java8# 注如果使用ADD命令则会自动解压上面的三条命令就可以变为以下命令
#ADD ./jdk8.tar.gz $JAVA_DIR/
#COPY ./docker-demo.jar /tmp/app.jar
#RUN cd $JAVA_DIR \
# mv ./jdk1.8.0_144 ./java8# 配置环境变量
ENV JAVA_HOME$JAVA_DIR/java8
ENV PATH$PATH:$JAVA_HOME/bin# 暴露端口
EXPOSE 8090
# 注可以通过ENV命令定义一个端口变量根据传入的参数动态指定端口
# 例如使用run命令时可以加上参数-e MY_PORT8088# 入口java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar