docker笔记

[size=large]一、简介[/size]
[size=medium]docker是一种开源的应用容器引擎,开发者可以打包应用及依赖包到一个容器中,然后发布到任何linux系统之上。docker只能运行在64位的linux系统上,内核版本最好是3.8以上。[/size]

[size=large]二、常用命令[/size]
[size=medium](1)查看本地镜像[/size]

docker images



[size=medium](2)查看docker容器进程[/size]

docker ps(查看正在运行的容器)
docker ps –a(查看全部容器)


[size=medium](3)启动容器[/size]

docker run <image_name>:<tag_name>
docker run -d <image_name>:<tag_name>(已daemon的方式启动)
docker run –p <local_port>:<contrainer_port> <image_name>:<tag_name>(将容器的端口映射到宿主主机的端口)
docker run –v <local_file>:< contrainer_file> <image_name>:<tag_name>(挂载文件,宿主主机和容器共享文件)


[size=medium] (4)查看容器信息[/size]

docker inspect < contrainer_id>(contrainer_id通过命令2获得)



[size=medium](5)删除容器[/size]

docker rm < contrainer_id>
docker rm -f < contrainer_id>(强制删除容器)



[size=medium](6)删除镜像[/size]

docker rmi < image_id>(image_id通过命令1获得)



[size=medium](7)下载镜像[/size]

docker pull <image_name>:<tag_name>



[size=medium](8)上传镜像[/size]

docker tag <image_id> <namespace>/<name>:<tag>(将镜像打成tag)
docker push <namespace>/<name>:<tag>(上传)



[size=medium](9)搜索镜像[/size]

docker search <image_name>:<tag_name>



[size=medium](10)提交新镜像[/size]

docker commit <container_id> [REPOSITORY[:TAG]]



[size=medium](11)构建镜像[/size]

docker build -t <path> .


[size=large]三、结合项目的部署[/size]
[size=medium]主要是替换原6983端口tomcat的部署
(1)首先安装docker,这里就不做过多描述,官网和网上都有介绍。

(2)下载tomcat镜像[/size]

docker pull tomcat:7-jre8


[size=medium] 镜像名为tomcat,tag名为7-jre8

(3)查看本地镜像[/size]

docker images


[img]http://dl2.iteye.com/upload/attachment/0118/4794/203f6954-1ae5-3278-acce-13317b78ffb0.png[/img]

[size=medium](4)项目部署准备
将项目代码放到/usr/local/web-src目录下,将tomcat下的context.xml和server.xml
放到/usr/local/web-conf(因为数据库连接改为jndi的方式),在/usr/local/下新建web_log目录,用于存放容器中tomcat的日志。

(5)启动容器,运行镜像[/size]

docker run -d -p 11111:8080
-v /etc/localtime:/etc/localtime:ro
-v /usr/local/web-src:/usr/local/tomcat/webapps
-v /usr/local/web_log/tomcat_11111_log:/usr/local/tomcat/logs
-v /usr/local/web-conf/server.xml:/usr/local/tomcat/conf/server.xml
-v /usr/local/web-conf/context.xml:/usr/local/tomcat/conf/context.xml
-v /usr/local/web-src/hjlc/WEB-INF/lib/druid-1.0.16.jar:/usr/local/tomcat/lib/druid-1.0.16.jar tomcat:7-jre8


[size=medium]命令参数解析:[/size]

-p 11111:8080 ----将宿主主机的11111端口映射到容器的8080端口
-v /etc/localtime:/etc/localtime:ro ----将宿主主机的系统时间同步给容器系统
-v /usr/local/web-src:/usr/local/tomcat/webapps ----将宿主主机的项目同步到容器
-v /usr/local/web_log/tomcat_11111_log:/usr/local/tomcat/logs ----将容器中的日志同步到宿主主机
-v /usr/local/web-conf/server.xml:/usr/local/tomcat/conf/server.xml ----用宿主主机的 server.xml覆盖容器中的server.xml
-v /usr/local/web-conf/context.xml:/usr/local/tomcat/conf/context.xml ----用宿主主机的 context.xml覆盖容器中的context.xml
-v /usr/local/web-src/hjlc/WEB-INF/lib/druid-1.0.16.jar:/usr/local/tomcat/lib/druid-1.0.16.jar ----将jar包加入容器tomcat中



[size=medium](6)启动3个容器
将上述命令中的端口11111,分别改为11112和11113,在运行命令。

(7)查看容器是否启动成功[/size]

docker ps -a


[img]http://dl2.iteye.com/upload/attachment/0118/4796/bfae670d-f4a0-33ea-9500-b011ba35c6c9.png[/img]

[size=medium]status显示Up XX seconds,表示启动成功。[/size]

[size=medium](8)实验部署是否成功
分别访问
http://172.18.8.35:11111/<context>/<url>,
http://172.18.8.35:11112/<context>/<url>,
http://172.18.8.35:11113/<context>/<url>
看是否能得到正确数据

(9)部署配置nginx负载
nginx可以安装在宿主主机,修改配置/usr/local/nginx/conf/nginx.conf,在http模块中增加如下代码:[/size]

upstream hjlc{
server 172.18.8.35:11111 weight=1;
server 172.18.8.35:11112 weight=1;
server 172.18.8.35:11113 weight=1;
}

server {
listen 6983; #监控6983端口
server_name 172.18.8.35; #监听172.18.8.35的url
location /hjlc {

#设置主机头和客户端真实地址,以便服务器获取客户端真实IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

#禁用缓存
proxy_buffering off;

#反向代理的地址
proxy_pass http://hjlc;
}
}



[size=medium] (10)测试负载是否配置成功
访问http://172.18.8.35:6983<context>/<url>查看是否能返回正确数据。[/size]

[size=large]四、制作镜像[/size]
[size=medium]docker制作有两种方式,docker commit 和 docker build
commit方式就是下载基础的镜像,然后进入镜像中,安装一些工具,然后执行[/size]

docker commit <container_id>


[size=medium]build方式需要自己编写脚本来制作自己的镜像。

commit制作例子:
(1)打开下载的基础镜像ubuntu系统[/size]

docker run -i -t ubuntu /bin/bash


[size=medium](2)安装apache[/size]

apt-get -yqq update
apt-get -y install apache2


[size=medium](3)执行exit退出容器

(4)提交保存镜像到hub[/size]

docker commit 61412230ae46 own-apache2

[size=medium]
build制作例子:
(1) 首先创建Dockerfile文件,该文件里编写构建代码。将jdk和tomcat目录放到Dockerfile文件的同一目录下,[/size]

[img]http://dl2.iteye.com/upload/attachment/0118/4798/75d42578-1569-3cbb-a0ea-76d27b91bd08.png[/img]
[size=medium]编写Dockerfile,如下[/size]

FROM ubuntu:14.04
MAINTAINER liws

#install jdk
ADD jdk1.7.0_25 /usr/local/jdk1.7.0_25
ENV JAVA_HOME /usr/local/jdk1.7.0_25
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH .:$JAVA_HOME/lib:$JRE_HOME/lib
ENV PATH $PATH:$JAVA_HOME/bin

#install tomcat
ADD apache-tomcat-6.0.44 /usr/local/apache-tomcat-6.0.44

CMD ["/usr/local/apache-tomcat-6.0.44/bin/catalina.sh", "run"]


[size=medium]代码说明:
FROM:必须存在的命令,表示使用哪个基础镜像。该实例为使用ubuntu 14.04系统,基础镜像会去docker hub上下载
MAINTAINER:表示制作人信息
ADD:将软件添加到镜像中。该实例为将主机的jdk1.7.0_25目录,添加到镜像系统文件中的/usr/local/jdk1.7.0_25
ENV:设置环境变量
EXPOSE:Container内部服务开启的端口
WORKDIR:切换工作目录,可进行多次切换(相当于cd命令)
USER:执行container的用户,如未指定,则默认使用root用户
ENTRYPOINT:Container启动时执行的命令,一个Dockerfile中只能有一条ENTRYPOINT
CMD:Container 启动时执行的命令,一个Dockerfile 中只能有一条CMD命令,如果有多条则只执行最后一条CMD
[color=blue][b] 注意:docker做tomcat镜像时,Dockerfile文件执行命令必须执行tomcat目录中的catalina.sh,不能执行startup.sh。(执行startup.sh,容器启动后会立刻停止)[/b][/color]

(2)进入Dockerfile所在目录,执行docker build构建镜像。[/size]

docker build –t <image_name>:<tag_name> .


[b][color=blue][size=medium]注意:后面加”.”,表示当前目录,一定要加[/size][/color][/b]

[img]http://dl2.iteye.com/upload/attachment/0118/4801/cb8949ed-9375-33a8-9bc9-d255e5bc0bed.png[/img]


[size=medium](3)构建完成后,通过docker images可以看到本地已经构建好镜像[/size]

[img]http://dl2.iteye.com/upload/attachment/0118/4803/2ee90ea5-dc36-3983-92fd-ca5ce5b144af.png[/img]


[size=medium](4)执行[/size]

docker tag <image_id> <repository>/<name>:<tag>

[size=medium]将名称改为同hub管理页面相同的存储空间名称。docker hub:https://hub.docker.com/[/size]

[img]http://dl2.iteye.com/upload/attachment/0118/4805/7e746cb3-7b60-3942-9c73-ba27b051052e.png[/img]


[size=medium](5)执行[/size]

docker push <repository>/<name>:<tag>

[size=medium]上传到docker hub[/size]

[img]http://dl2.iteye.com/upload/attachment/0118/4807/f85883ed-489f-3643-8ee9-749f52f226e3.png[/img]
### 回答1: 要下载Docker笔记,首先需要了解Docker是什么以及其使用场景。 Docker是一种开源的容器化平台,可以帮助用户打包、部署和运行应用程序。通过使用容器化技术,用户无需担心运行环境的差异,可以将应用程序和其依赖项打包到一个可移植的容器中,随时在不同的环境中运行。 要下载Docker笔记,可以按照以下几个步骤进行操作: 1. 首先,需要在计算机上安装Docker。可以从Docker官方网站(https://www.docker.com/)上下载适合自己操作系统Docker安装包,并按照安装指南进行安装。 2. 安装完成后,需要启动Docker服务。根据操作系统的不同,可以在启动菜单或终端中找到Docker应用程序,并点击打开。在Docker控制台中,可以查看、管理容器以及进行其他操作。 3. 接下来,需要搜索并下载Docker笔记的镜像。可以使用Docker Hub(https://hub.docker.com/)这个官方的镜像仓库,搜索关键词以找到合适的笔记镜像。在搜索结果中,会显示镜像的名称、描述、标签等信息,选择一个合适的镜像。 4. 找到想要下载的笔记镜像后,可以使用Docker命令行工具或Docker控制台中的图形界面来下载镜像。通过输入命令`docker pull 镜像名称:标签`,即可下载对应的笔记镜像到本地。 5. 下载完成后,可以使用`docker images`命令在本地查看已下载的镜像列表。根据下载的笔记镜像的名称和标签,可以使用`docker run`命令来创建并启动一个容器,从而运行笔记。 通过以上步骤,就可以成功下载Docker笔记并在本地运行。希望这些信息对您有帮助! ### 回答2: 要下载Docker笔记,首先需要知道从哪里获取这些笔记Docker有一个官方文档网站,其中包含了大量关于Docker的技术文档、教程和示例以及各种使用场景的说明。用户可以访问Docker官方网站,在文档部分进行浏览和搜索,找到所需的笔记。 在Docker官方文档网站上,用户可以按照主题、标签或关键字进行检索,以找到相关的笔记。网站还提供了各种文件格式的下载选项,包括PDF、EPUB和HTML版本,用户可以根据自己的使用习惯选择适合的格式进行下载。 此外,还有一些第三方资源库和网站提供了Docker相关的笔记下载。例如GitHub上有很多开源项目,其中包含了Docker的使用笔记和示例代码。用户可以通过在GitHub上搜索关键字"Docker笔记"或"Docker notes"来找到相关的项目,然后根据项目的说明进行下载。 总之,下载Docker笔记可以通过Docker官方文档网站或第三方资源库进行。用户可以根据自己的需求和偏好选择下载适合自己的格式和来源。 ### 回答3: 要下载 Docker 笔记,首先需要确保已经安装了 Docker 客户端工具。然后按照以下步骤进行下载: 1. 打开终端或命令提示符,输入以下命令来下载 Docker 笔记Docker 镜像: ``` docker pull [镜像名称] ``` 这里的 `[镜像名称]` 是 Docker Hub 上提供的 Docker 镜像名称,可以根据需要搜索并选择合适的镜像。 2. 等待镜像下载完成后,使用以下命令来创建和运行一个 Docker 容器,并将笔记下载到本地: ``` docker run -it --name [容器名称] [镜像名称] [下载命令] ``` 这里的 `[容器名称]` 是用于标识容器的名称,`[下载命令]` 是具体的下载命令,可以根据下载方式的不同进行相应的设置。 3. 等待下载完成后,可以使用以下命令来停止并删除容器: ``` docker stop [容器名称] docker rm [容器名称] ``` 这里的 `[容器名称]` 是之前创建容器时指定的名称。 通过以上步骤,你就可以成功下载 Docker 笔记到本地了。记得根据实际需求选择适合的 Docker 镜像和下载命令,同时也可以通过 Docker Hub 上的文档和社区提供的资源,了解更多有关 Docker 的使用方法和技巧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值