资讯详情

Docker

<h1>docker</h1> DOCKER入门 https://ppt.fujiabin.com/tutorial/docker/ Mac上用Docker搭建lamp环境 http://www.56cto.com/1089 Docker for Mac 初体验 https://segmentfault.com/a/1190000005106237 在MAC上运行Docker和Oracle 12.2数据库环境 http://database.51cto.com/art/201705/540105.htm Spring Cloud 微服务(4) Docker化 http://www.jianshu.com/p/1ce2bc8ce674 将spring cloud打包docker镜像 http://www.cnblogs.com/waterlufei/p/6627280.html Docker 教程 及 Docker 命令大全 http://www.runoob.com/docker/docker-tutorial.html http://www.runoob.com/docker/docker-command-manual.html Docker —— 从入门到实践 https://yeasy.gitbooks.io/docker_practice/content/ https://www.gitbook.com/book/yeasy/docker_practice/details Docker使用阿里云docker镜像加速 https://www.cnblogs.com/zhxshseu/p/5970a5a763c8fe2b01cd2eb63a8622b2.html https://dev.aliyun.com/search.html 2017年,使用docker开发应用程序 https://zhuanlan.zhihu.com/p/25092632 下载Docker for Mac https://download.docker.com/mac/stable/Docker.dmg <h2>容器存储层</h2> 镜像使用分层存储,容器也是如此。当每个容器运行时,基于镜像创建当前容器的存储层,为容器运行时的读写准备,我们称之为容器存储层。 按照 Docker 根据最佳实践要求,容器不应将任何数据写入其存储层,容器存储层应保持无状态。应使用所有持久操作 数据卷(Volume),或者绑定宿主目录。这些位置的读写会跳过容器存储层,直接读写宿主(或网络存储),其性能和稳定性更高。 https://yeasy.gitbooks.io/docker_practice/content/basic_concept/container.html <h2>运行时参数</h2> <ul> <li style="list-style-type: none;"> <ul> <li>--name 指定容器的名称。</li> <li>-t 让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上</li> <li>-i interactive,保持打开容器的标准输入</li> <li>-d detached 容器以后台过程的形式运行,并返回容器ID。还可以使用Ctrl p q将容器放在后台运行。此时,容器不会输出结果(STDOUT)打印在宿主机上(可以使用输出结果)docker logs 查看)。</li> <li>-p 创建特定的端口绑定规则。-p多个端口可用于指定端口映射-p指示多个映射。</li> <li>--rm退出容器后,删除它</li> <li>--restart=always 设置容器重启策略,以确定容器退出时的重启策略Docker守护进程是否重启刚刚退出的容器。--restart选项通常只用于detached模型容器,i不能与--rm同时使用选项</li> <li>-v 宿主的路径:Docker容器中的路径,主机与容器中的目录同步。-v 参数可多次使用,每次映射一个目录。</li> <li>-w 表示将-v映射的/webapp目录设置为work directory,也就是运行node命令目录。此设置将覆盖Dockfiie中间设置:/Data。</li> <li>--privileged=true 大约在0.6版,privileged被引入docker。使用该参数,container内的root拥有真正的root权限。否则,container内的root只是外部普通用户权限。</li> </ul> </li> </ul> 更多参数解释 http://blog.csdn.net/alen_xiaoxin/article/details/54694051 <h2>端口映射运行时</h2> -p参数内容有几种不同的格式: ip:hostPort:containerPort| ip::containerPort | hostPort:containerPort | containerPort 其中,ip或者hostPort可以忽略。默认为tcp,如果需要udp,最后需要指定,比如-p 1234:1234/udp。当多个容器暴露端口时,应注意避免端口冲突。 所有发布(-p或者-P)端口暴露,但并非所有暴露(EXPOSE或--expose)将发布端口。

快速参考: <img class="alignnone size-medium" src="http://dockone.io/uploads/article/20150623/96cceeeb5e5d3745374b152e06bc6561.jpg" width="673" height="317" /> <h2>创建一个新的容器并运行一个命令</h2> 命令跟随镜像名,命令运行后终止容器。Docker当容器中指定的应用程序结束时,容器也会自动终止。 <pre>docker run ubuntu /bin/echo "Hello world" docker run ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done" </pre> <h2>操作交互式容器</h2> <pre>docker run --name name1 -i -t ubuntu /bin/bash </pre> 通过exit命令或使用CTRL D退出并停止容器。使用组合键 ctrl(Mac上是control) p q 容器退出后不会停止。 <h2>交互式连接容器</h2> 如果在容器运行时添加了容器 -d 可通过参数 attach 或 exec 操作进入容器: <pre>docker attach -i -t CONTAINER_NAME /bin/bash docker exec -it CONTAINER_ID bash docker exec -it CONTAINER_ID /bin/sh </pre> <h2>运行mysql</h2> <pre>docker run -p 3306:3306 --name mysql1 -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6 </pre> 使用Docker快速搭建Mysql,并分离数据卷 https://www.jianshu.com/p/57420240e877 docker安装mysql,可能mysql8.授权用户,否则使用navicat连接不上。 https://blog.csdn.net/wyl9527/article/details/79111467 <h2>运行nginx</h2> nginx相关路径有 /etc/nginx/、/etc/nginx/conf.d、/usr/share/nginx/html <pre>docker run --name nginx1 -p 8887:80 -v /主机html目录:/usr/share/nginx/html nginx docker run -p 81:80 --name szsmart-www -v /opt/szsmart/angular:/usr/share/nginx/html -d nginx docker run -p 82:80 --name hksmart-www -v /opt/hksmart/angular:/usr/share/nginx/html -d nginx </pre> <h2>运行mongo</h2> <pre>docker run -p 14000:27017 --name mongo_db -v /opt/mongo_db:/data/db -d mongo </pre> <h2>运行tomcat</h2> docker run -d --restart always -v /alidata/webapps/ReadAdmin.wa:/usr/local/tomcat/webapps/ReadAdmin.war -p 8080:8080 --name tomcat1 tomcat Docker实践 - 安装Docker并在容器里运行tomcat https://blog.csdn.net/massivestars/article/details/54352484 <h2>数据卷Volume映射</h2> -v 后面可以跟多个映射,本地目录的路径必须是绝对路径,如果目录不存在 Docker 会自动创建它。 Docker 挂载数据卷的默认权限是读写,可以在容器路径后加上 :ro 指定为只读。 <pre>-v /some/nginx.conf:/etc/nginx/nginx.conf:ro</pre> 还可以对正在运行的容器追加映射: <pre>docker run -v /path/to/hostdir:/mnt $container </pre> <h1>生成镜像</h1> 1.从基础镜像生成镜像 编辑Dockerfile文件,例如输入内容: <pre>FROM docker.io/tomcat    #基础镜像 MAINTAINER XXX@qq.com    #作者 COPY docker.war /usr/local/tomcat/webapps  #拷贝war包到tomcat的webapps目录 </pre> 根据当前目录下的Dockerfile文件配置生成镜像 <pre>docker build -t nginx-demo:v1 . </pre> 2.保存容器成镜像 将容器的存储层保存下来成为镜像,在旧的镜像上添加了新的一层,形成新的镜像。 脱离容器保持运行,使用ctl+p+q快捷键,然后可以看到刚启动的容器继续在运行。 <pre>docker commit -m "descriptiont" -a "author" container_id new_name docker commit \ --author "作者" \ --message "修改了默认网页" \ webserver \ nginx:v2 </pre> <h1>导出镜像为文件</h1> <pre>docker save container_ID &gt; /home/nginx-demotest.tar </pre> 查看容器相对镜像的改动 docker diff CONTAINER_ID 查看镜像内的历史记录 docker history 镜像名 <h2>其它命令</h2> <pre>#启动docker服务 service docker start </pre> 镜像操作: <pre>#查找镜像 docker search ubuntu #获取镜像 docker pull nginx:latest #查看本地镜像 docker images | grep abc docker images IMAGE_NAME #删除镜像 docker rmi IMAGE_ID </pre> 容器操作: <pre>#查看运行的容器 docker ps #查看运行和终止状态的容器 docker ps -a #删除容器 docker rm  CONTAINER_ID  要删除一个运行中的容器,可以添加 -f 参数,Docker 会发送 SIGKILL 信号给容器。 docker rm $(docker ps -a -q) 清理所有处于终止状态的容器。 #查看容器内的标准输出 docker logs CONTAINER_ID #停止容器运行,对于只启动了一个终端的容器,通过 exit 命令或 Ctrl+d 来退出终端时,所创建的容器立刻终止。 docker stop CONTAINER_ID #将一个终止状态的容器启动运行 docker start CONTAINER_ID #重启容器 docker restart CONTAINER_ID #容器内运行nginx服务 docker exec CONTAINER_ID nginx   #查看容器运行时端口绑定信息 docker port CONTAINER_ID #查看容器详细的网络信息 docker inspect CONTAINER_ID #查看容器的IP docker inspect CONTAINER_ID | grep '"IPAddress"' #主机和容器之间拷贝文件 docker cp ... </pre> <h2>Detached vs foreground</h2> 启动一个container时,首先需要确定这个container是运行在前台模式还是运行在后台模式。 Detached (-d) 如果在docker run 后面追加-d=true或者-d,则containter将会运行在后台模式(Detached mode)。此时所有I/O数据只能通过网络资源或者共享卷组来进行交互。因为container不再监听你执行docker run的这个终端命令行窗口。但你可以通过执行docker attach 来重新挂载这个container里面。需要注意的时,如果你选择执行-d使container进入后台模式,那么将无法配合"--rm"参数。 Foregroud 如果在docker run后面没有追加-d参数,则container将默认进入前台模式(Foregroud mode)。Docker会启动这个container,同时将当前的命令行窗口挂载到container的标准输入,标准输出和标准错误中。也就是container中所有的输出,你都可以再当前窗口中查看到。 容器是否会长久运行,和docker run指定的命令有关,和 -d 参数无关。

查找镜像 sudo docker search nginx 而具体版本号到https://hub.docker.com/explore/中查找。

How to run NGINX as a Docker container https://www.techrepublic.com/article/how-to-run-nginx-as-a-docker-container/

Linux f2b4dd41f60e 4.9.49-moby #1 SMP Wed Sep 27 23:17:17 UTC 2017 x86_64 GNU/Linux <h2>查看docker容器的系统信息</h2> <pre>wangweikedeMacBook:~ admin$ docker run --name nginx1029 -t -i nginx bash root@b519367267ca:/# cat /etc/os-release PRETTY_NAME="Debian GNU/Linux 9 (stretch)" NAME="Debian GNU/Linux" VERSION_ID="9" VERSION="9 (stretch)" ID=debian HOME_URL="https://www.debian.org/" SUPPORT_URL="https://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/" root@b519367267ca:/# uname -r 4.9.36-moby root@b519367267ca:/# uname -a Linux b519367267ca 4.9.36-moby #1 SMP Wed Jul 12 15:29:07 UTC 2017 x86_64 GNU/Linux </pre> <h1>公司测试服务器</h1> #mongodb docker run -p 14000:27017 --name mongo_db -v /opt/mongo_db:/data/db -d mongo docker run -p 81:80 --name szsmart-www -v /opt/szsmart/angular:/usr/share/nginx/html -d nginx docker run -p 82:80 --name hksmart-www -v /opt/hksmart/angular:/usr/share/nginx/html -d nginx <h1>在Centos中安装docker</h1> yum install docker-io service docker start <h1>docker容器运行后退出的问题</h1> Docker容器后台运行,就必须有一个前台进程。容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的。这个是docker的机制问题。 <pre>docker run -d -it --net=host --name cnmp4 wwk/cnmp /bin/sh </pre> http://blog.51cto.com/gentle/1826820 <h1>使用 Dockerfile脚本 定制镜像</h1> 把每一层修改、安装、构建、操作的命令都写入Dockerfile,用这个脚本来构建、定制镜像,解决了之前提及的无法重复的问题、镜像构建透明性的问题、体积的问题。 使用Dockerfile构建Docker镜像为一个规范的方式,根据Dockerfile可以了解镜像中安装的组件的详细内容。 Dockerfile一般由四部分组成: 第一,构建的基础镜像; 第二,镜像构建者的信息; 第三,构建镜像过程中镜像层添加指令; 第四,由该镜像启动容器时执行的程序。 <h1>docker-compose</h1> docker-compose是Docker官方编排工具,用来管理和运行Docker容器,负责实现对Docker容器集群的快速编排。Docker Compose工具比单纯的Dockerfile来更为便利、更易管理。 https://docs.docker.com/compose/install/ Centos7.4下用Docker-Compose部署WordPress https://www.fujiabin.com/2017/11/07/deploy-wordpress-with-docker-compose-in-centos7/ Docker服务器端用Nginx作为反向代理并添加SSL证书(阿里云免费DV证书) https://www.cnblogs.com/wushangjue/p/7810339.html http://www.mamicode.com/info-detail-1703824.html http://blog.51cto.com/11962757/2086760 http://www.lixiangfeng.com/blog/article/content/8595503 https://www.jianshu.com/p/2217cfed29d7 可能冒号后需要加个空格,不然在执行 docker-compose up -d后报错ERROR: yaml.scanner.ScannerError: mapping values are not allowed here。 创建 docker-compose.yml 文件,然后在当前目录下执行命令 docker-compose up -d 来启动各个服务。 <pre> version: "2" services:   php-fpm1:     image: bitnami/php-fpm     container_name: php-fpm1     restart: always     volumes:         - /alidata/docker_work/www:/host/www   nginx1:     image: nginx     container_name: nginx1     restart: always     ports:       - 81:80       - 444:443     volumes:       - /alidata/docker_work/nginx/conf:/etc/nginx/conf.d       - /alidata/docker_work:/host     links:       - php-fpm1:php-fpm-alias </pre> <h1>link</h1> 设定的别名要和容器环境中使用的变量名字一致。 基于Docker搭建LNMP环境,独立安装mysql、php-fpm、nginx,然后各容器用link参数建立起联系。 https://blog.csdn.net/xy752068432/article/details/75975065

https://blog.csdn.net/zhangyifei216/article/details/50921215 https://www.jianshu.com/p/13752117ff97 <h1>docker加速器</h1> <pre>sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json &lt;&lt;-'EOF' #相当于在daemon.json中输入以下内容 {   "registry-mirrors": ["https://4qqg0972.mirror.aliyuncs.com"] } EOF #重启docker sudo systemctl daemon-reload sudo systemctl restart docker </pre> <h1>wordpress</h1> <pre>docker run --name wp1 --link mysql1:mysql -p 80:80 -v /home/apache2/apache2.conf:/etc/apache2/apache2.conf -v /home/www/brogrammer:/var/www/html -e WORDPRESS_DB_NAME=wwk_wordpress -d wordpress </pre> <h2>Centos 7.5 中 docker 启动web服务,但外部无法访问。</h2> 解决办法: # vi /etc/sysctl.conf 或者 # vi /usr/lib/sysctl.d/00-system.conf 添加如下代码: net.ipv4.ip_forward=1

重启network服务,或者重启服务器。 # systemctl restart network

标签: f60ua60dn二极管

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

 锐单商城 - 一站式电子元器件采购平台  

 深圳锐单电子有限公司