《Docker学习文档.docx》由会员分享,可在线阅读,更多相关《Docker学习文档.docx(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Docker工程的目标是实现轻量级的操作系统虚拟化解决方案,缩短工程从编 码到上线的周期。保证开发环境与应用程序要部署的生产环境具备一致性。 他的基础是linux容器等技术。Docker推荐一个容器只运行一个程序。使用Docker,开发人员只需要关心容器中运行的应用程序,运维人员只需要关心如何管理容器。Docker是CS架构程序。镜像与容器容器是基于镜像启动起来的,用户基于镜像运行容器Docker借鉴了标准集装箱的概念。标准集装箱将货物运往世界各地,Docker 将这个模型运用到自己的设计中,唯一不同的是:集装箱运输货物,而Docker运输 软件。设置镜像加速器vi /etc/docker/d
2、aemon.json为registry-mirrors: cnMl 1,启动,关闭,查看状态systemctl start dockersystemctl stop dockersystemctl status docker16.4 编辑 daemon.jsonvi /etc/docker/daemon, json(“registry-mirrors: s:docker, mirrors, ustc. edu. cn, “insecure-registries”: 192. 168.101. 137:5000”)重启systemctl restart docker标记此镜像为私有仓库镜像doc
3、ker tag Jdk8 192. 168. 101. 137:5000/jdk8启动 registrydocker start registry上传标记的镜像docker push 192.168.101.137:5000/jdk8从私服下载docker pull 192.168. 101. 137:5000/jdk82,开机自启systemctl enable docker其他容器一开机就自启:docker update -restart=always postgresqldocker update -restart=no postgresql启用ipv4网络,虚拟机可以连接外部网络在do
4、cker的宿主机中更改以下vi /usr/lib/sysctl. d/00-system, conf添加如下代码:net. ipv4. ip_forward=l重启network服务# systemctl restart network3,查看镜像docker images4,查询镜像docker search centos5,拉取镜像docker pull tutum/centos6,删除镜像docker rmi 镜像 id7,创立容器:7.1 交互式docker run - it容器名称+版本号(或者容器ID) /bin/bashrootlocalhost docker run -it -
5、name=mycntos centos:7 /bin/bashrootc3559349be60 /#rootI ibI ib64 -root?74294a69b021 /# ex停止容器docker stop别名(服务名ID)查看容器运行情况docker ps或者 docker ps -a启动容器docker start别名(服务名ID)8,文件拷贝要将文件拷贝到容器内可以使用cp命令docker cp需要拷贝的文件或目录 容器名称:容器目录将文件沉着器内拷贝出来docker cp容器名称:容器目录需要拷贝的文件或目录9,目录挂载(加-v参数)docker run - di - v /usr/
6、local/myhtml:/usr/local/myhtml - - name=mycentos3centos:7如果共享的是多级目录,可能会报没有权限,这是因为平安模式把权限禁掉了,我们需要添加参数 一privileged=true来解决挂载的目录没有权限的问题10,查看容器ip地址docker inspect容器名称(容器ID)也可以直接执行下面的命令直接输出IP地址docker inspect - - format=,.NetworkSettings. IPAddressJ,容器名称(容器 ID)11,删除容器docker rm容器名称(容器ID)12,应用部署lmysql拉取mysql
7、docker pull centos/mysql-57-centos7创立容器msyqldocker run -di -name=mysql1 -p 33306:3306 -e MYSQL_R00T_PASSW0RD=123456 centos/mysql-57-centos7测试在docker的宿主机中更改以下vi /usr/lib/sysctl. d/00-system. conf添加如下代码:net. ipv4. ip forward=l重启network服务# systemctl restart network本地电脑连接远程mysqlmysql -h ip -P33306 -uroo
8、t -pl23456停止docker stop 服务 id启动docker start 服务 id2,tomcat拉取 tomcat7docker pull tomcat:7-jre7创立容器docker run -di -name=mytomcat -p 8085:8080 -v/usr/local/webapps/mytomcat:/usr/local/tomcat/webapps/mytomcat tomcat:7-jre7docker run并挂载数据卷docker run -d -p 8083:8080 -v/yundata/docker-data/webapps/myapps/my
9、tomcat/:/usr/local/tomcat/webapps/mytomcat/ tomcat:7-jre7测试可以用ip:8083进行停止docker stop 服务 id启动docker start 服务 id3,nginx拉取docker pull nginx创立容器docker run -di -name=mynginx1 -p 80:80 nginx测试访问 :/ip/进入容器docker exec -it mynginxl /bin/bash停止docker stop 服务 id启动docker start 服务 id4,Redis拉取docker pull redis创立容
10、器docker run -di -name=myredis -p 6379:6379 redis测试用 RedisDesktopManager 连接 ip停止docker stop 服务 id启动docker start 服务 id13,容器保存为镜像docker commit mynginx mynginxi14,镜像保存为tar文件docker save -o mynginx. tar mynginx i还原为镜像docker load - i mynginx. tardocker save 和 docker export 的区另U对于Docker Save方法,会保存该镜像的所有历史记录
11、 对于Docker Export方法,不会保存历史记录,即没有commit历史docker save -o 保存的是镜像(image) , docker export -o 保存的是容器(container); docker load用来载入镜像包,docker import用来载入容器包,但两者都会恢复为镜像;docker load不能对载入的镜像重命名,而docker import可以为镜像指定新名称。15, Dockerfile1、对于开发人员:可以为开发团队提供一个完全一致的开发环境;2、对于测试人员:可以直接拿开发时所构建的镜像或者通过Dockerfile文件构建一个新 的镜像开始工
12、作了;3、对于运维人员:在部署时,可以实现应用的无缝移植。创立文件夹mkdir -p /usr/local/java/jdkl. 8. 0_171把 jdk - 8ul71 - linux - x64. tar. gz 上传到/usr/local/java/jdkl. 8. 0_171 Tcd /usr/local/java/jdkl. 8. 0 _171创立文件vi Dockerfile写入依赖镜像名称和1DFROM centos:7指定镜像创立者信息MAINTAINER TELLIIOW切换工作目录WORKDIR /usrRUN mkdir /usr/local/java# ADD是相对路
13、径jar,把java添加到容器中ADD jdk - 8ul71 - linux - x64. tar. gz /usr/local/java/# 配置java环境变量ENV JAVA_HOME /usr/local/java/jdkl. 8. 0 .171ENV JRE_H()ME $JAVA HOME/j reENV CLASSPATH $JAVA_HOME/1ib/dt. jar:$JAVA_HOME/1ib/tools. jar:$JREJIOME/1ib:$CLASSPATHENV PATH $JAVA_HOME/bin:$PATH运行命令docker build jdk8,.查看是否创立成功Docker images16,私有仓库拉取私有仓库镜像(此步省略)docker pull registry启动私有仓库容器docker run -di 一一name=registry -p 5000:5000 registry翻开浏览器输入地址 :192. 168. 101. 137:5000/v2/_catalog 看 到repositories: 口表示私有仓库搭建成 功并且内容为空