Docker容器学习

Posted zhangmy2016

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker容器学习相关的知识,希望对你有一定的参考价值。

Docker学习

docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,
然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

优点:1.提高效率,方便快捷(容器系统资源开销低) 2.沙箱机制,互不干扰 3.集群部署,负载均衡

Client docker CLI(命令行界面工具的客户端)-->REST API-->docker daemon(服务器,守护进程)

swarm:docker容器的集群和调度工具。

安装docker:
root账户进入/etc/apt/:
curl -sSL https://get.daocloud.io/docker | sh(ps:安装比较慢,请耐心等待)
将zhangmy用户加入docker组:
sudo usermod -aG docker zhangmy(重新登录即可查看docker version,代表加入组成功)
配置docker加速器(root):
vi /lib/systemd/system/docker.service
将ExecStart行改为ExecStart=/usr/bin/dockerd --registry-mirror=https://jxus37ac.mirror.aliyuncs.com
systemctl daemon-reload
service docker restart
systemctl status docker.service

克隆docker虚拟器。

用docker容器打印:docker run ubuntu:15.10 /bin/echo "Hello World"

查看docker镜像:docker images

查看运行中的容器:docker ps

查看容器:docker ps -a

删除容器:docker rm (容器id)

运行ubuntu:15.10进入容器内:docker run -it ubuntu:15.10 /bin/bash

容器在宿主机上运行。

死循环容器:docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello docker; sleep 1; done"

停止容器运行:docker stop (容器id)

查看更多的docker命令:docker command --help

docker run -d -P training/webapp python app.py
docker 运行 在后台 将容器映射到数组机上 镜像为training/webapp python命令 启动app.py

docker run -d -p 8888:5000 training/webapp python app.py 发布到8888端口下。

查看容器进程:docker top 容器id(或名称)

查看容器进程的底层信息:docker inspect 容器id(或名称)

交互式进入docker容器:docker exec -it 容器id(或名称) /bin/bash

docker hub镜像仓库

获取tomcat镜像:docker pull tomcat(可以+:+tomcat版本)

查找镜像:docker search tomcat(ps:[ok]代表官方的版本 stars代表使用次数)

更新镜像配置数据源并保存:
docker run -it ubuntu:15.10 /bin/bash
cd /etc/apt
echo deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse > sources.list
echo deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse >> sources.list
echo deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse >> sources.list
echo deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse >> sources.list
cat sources.list
apt-get update
apt-get install vim
apt-get update
exit
docker commit -m"install vim" -a="zhangmy" 镜像id zhangmy/ubuntu:v2
docker images(即可查看到镜像已保存)

创建镜像:
root进入/usr/local创建/docker/myubuntu目录
vi Dockerfile
输入:
FROM ubuntu:15.10
MAINTAINER [email protected]
RUN /bin/bash -c ‘echo "Hello World"‘
COPY test.txt /home
WORKDIR /home
EXPOSE 80
EXPOSE 8080
CMD [" /bin/echo", " this is a echo test"]
docker build -t zhangmy/myubuntu .

设置镜像标签:docker tag 镜像id zhangmy/myubuntu:v2(即可新增一个标签[TAG]为v2的镜像)

删除镜像:docker rmi 镜像id

tomcat启动:
docker run --name tomcat -p 8080:8080 -d tomcat
使用docker运行一个名字叫做tomcat的容器将宿主机的8080端口映射到容器的8080端口,在后台运行使用tomcat镜像。
交互式进入tomcat容器,将项目发布在webapps里即项目发布成功。

安装mysql(ps:root账户):
docker pull mysql
{sudo docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql
下面的不能用用这个,再交互式修改mysql的root账户密码:
docker exec -it mysql /bin/bash
mysql -u root -p
ALTER USER ‘root‘@‘%‘ IDENTIFIED WITH mysql_native_password BY ‘123456‘;
}
docker run -p 3306:3306 --name mysql
-v /usr/local/docker/mysql/conf:/etc/mysql
-v /usr/local/docker/mysql/logs:/var/log/mysql
-v /usr/local/docker/mysql/data:/var/lib/mysql
-e MYSQL_ROOT_PASSWORD=123456
-d mysql
ps:-p指定映射端口 --name指定容器名称 -v指定数据卷 -e指定环境变量 -d后台运行

部署docker项目:
将项目的sms_op.war包上传到download
cd /usr/local/docker/tomcat/sms_op
vi Dockerfile
FROM tomcat
MAINTAINER zhangmy
ADD sms_op.war /usr/local/tomcat/webapps/sms_op.war
mv sms_op.war /usr/local/docker/tomcat/sms_op
docker build -t zhangmy/sms_op .
docker run -it zhangmy/sms_op /bin/bash
修改数据库连接池(依据项目进行修改)。
docker run --name sms_op -d -p 8080:8080 zhangmy/sms_op






































































以上是关于Docker容器学习的主要内容,如果未能解决你的问题,请参考以下文章

Docker学习笔记 —— Docker管理容器

Docker容器学习梳理-容器硬盘热扩容

Docker容器学习整理

Docker学习docker容器网络通信原理分析

Docker容器学习梳理--容器登陆方法梳理(attachexecnsenter)

Docker学习笔记(8-2)Docker - 数据卷容器