栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

docker

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

docker

docker安装

centos7下载docker
注意下载版本要和操作系统版本对应。
docker-ce-18.06.2.ce-3.el7.x86_64.rpm

安装:
 yum install -y docker-ce-18.06.2.ce-3.el7.x86_64.rpm 

启动服务:
service docker start 
systemctl start docker
systemctl stop docker
sytstemctl restart docker
# 查看dockers状态
systemctl status docker 

测试安装成功
docker version
或者  docker info
docker配置镜像加速

在阿里云控制台找到docker加速器信息:
阿里云控制台

新建编辑 /etc/docker/daemon.json
修改保存后输入命令重启docker守护进程和服务

docker指令

docker ps
docker ps -l 查看最近创建的容器
docker ps -n=个数 查看最新创建的n个容器
docker create nginx --name=nginx nginx 容器创建
docker run --name nginx02 -d -p 88:80 nginx 创建并运行容器 -d
docker run --name ubuntu -it ubuntu /bin/bash 交互型容器 -it
docker start xxx 启动容器
docker stop xxx
docker restart xxx
docker rm xxx
docker rm $(docker ps -a -q) 批量删除没有运行的容器
docker container prune 批量删除 prune减少,删除
docker exec -it ubuntu /bin/bash 进入正在运行的容器
docker inspect 查看容器信息 inspect:视察

docker cp index.html nginx02:/usr/share/nginx/html/ 拷贝文件到容器
docker export nginx02 > ./nginx.tar 将容器导出
cat nginx.tar | docker import - importednginx:v1 容器导入

通过容器导出的镜像运行,必须带 -t (带着命令执行) 估计是没有写CMD属性。。

docker run -dti --name nginx01 -p 8080:80 nginx /docker-entrypoint.sh nginx -g 'daemon off;'

docker commit -m “update index.html” --author=‘waterkid’ nginx02 waterkid01/nginx:v1 创建本地镜像
-m :对镜像的描述
-author :作者
nginx02 : 容器的名字
waterkid01/nginx:v1 : 镜像的名字和版本

Dockerfile

dockerfile 就是一个普通的文本文件,其内包含了一条条指令,每一条指令都会构建一层
dockerfile常用命令

命令作用
FROM image_name:tag定义了使用哪个基础镜像启动
MAINTAINER user_name声明镜像创建者
ENV key value设置环境变量
RUN commanddockerfile的核心部分,执行系统指令
ADD source_dir/file dest_dir/file将宿主机的文件复制到容器内,如果是一个压缩文件会在复制后自动解压
COPY source_dir/file dest_dir/file和ADD相似,但是不会自动解压压缩文件
WORKDIR path_dir设置工作目录
CMD指定容器启动时运行的命令

在一个空白目录写一个Dockerfile文件,文件创建完成之后,执行如下命令进行构建:

docker build -t  waterkid01/nginx:v1 .
docker hub

dockerhub
注册一个账号

docker login 登录docker
自制的镜像要能够上传,命令必须满足规范 即 namespace/name 其中namespace必须是自己的用户名

引用:http://www.javaboy.org/2019/0524/docker-container-basic.html

不想写了。。。后续。。。

遇到的问题:
  1. docker卸载问题
    之前centos直接使用 yum install -y docker 安装的是docker最原始的版本 docker1.13
    docker-io,docker-engin是以前早期的版本,版本号是1.*。。默认centos7安装的是docker-io,最新版是1.13
    docker-ce是社区版本, Ubuntu默认安装的是docker-ce,,以下是官方描述:
    docker-ee 是 docker 的企业版,适用于企业级开发,同样也适用于开发,分发,运行商务级别的引用的it团队
# 更新到最新的yum包
yum update -y
#卸载旧版本(如果安装过旧版本的话)
yum remove docker docker-common docker-selinux docker-engine docer-io
重新安装你想装的版本

引用:https://www.cnblogs.com/WalkOnMars/p/13322669.html
引用:https://blog.csdn.net/horizon_zpy/article/details/88383263


  1. nginx容器导出后再导入 nginx运行不起来
    容器导出的镜像感觉和直接手写的Dockerfile 的nginx不一样,,
    nginx默认是后台启动的,一般我们启动nginx进程就是直接输入nginx,然后回车,但是docker的CMD要求命令能将进程挂起来,也就是hold住,显然,正常使用nginx命令启动不满足这个条件

查看docker中的nginx容器信息:

#  --no-trunc 显示所有信息,不截取
docker  ps  --no-trunc   


nginx容器的启动命令:

/docker-entrypoint.sh nginx -g 'daemon off;'

通过容器导出的镜像运行,必须带 -t (带着命令执行) 估计是没有写CMD属性。。

docker run -dti --name nginx01 -p 8080:80 nginx /docker-entrypoint.sh nginx -g 'daemon off;'

引用 :https://www.cnblogs.com/shanfeng1000/p/14060545.html


  1. iptables: No chain/target/match by that name.

重启虚拟机后,运行docker容器报错
原因:重新设置网关后,iptables(firewalld) 被激活, docker chain 设置未更新!
重启docker服务后,促使最新设置被加入到iptables中
解决办法:
重启docker
service docker restart

引用:https://blog.csdn.net/qq_24452475/article/details/83901620


  1. This system is not registered with an entitlement server. You can use subscription-manager to
    重启虚拟机,运行docker 容器报错:
    这个Red Hat Subscription Manager订阅管理器,它会让你一直register,禁用就好。
    脚本文件: /usr/lib/yum-plugins/subscription-manager.py
    配置文件: /etc/yum/pluginconf.d/subscription-manager.conf
    调用了脚本 /usr/share/rhsm/repolib.py
    去重写或者更新/etc/yum.repos.d/redhat.repo文件。
    每次yum调用(不禁掉plugins的情况下),都会更新此文件。
    因此,为了不冲突,可以如下操作:停止掉该插件的使用,在配置文件中把enable=0即可。

    引用:https://blog.csdn.net/oraoharu/article/details/106808108

  1. push自己的docker镜像报错
    引用:https://blog.csdn.net/qq_37786775/article/details/89422727

docker tag  local-image:tagname   reponame:tagname
docker push reponame:tagname
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/308248.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号