企业应用架构模式
企业批量购书
分享 关注商品举报
企业应用架构模式 [Patterns of Enterprise Application Architecture]
程序员 技术讨论会 的各种PPT
#systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
sudo apt-get install openssh-server
sudo /etc/init.d/ssh restart
sudo ufw disable
sudo ufw enable
参考:https://yeasy.gitbooks.io/docker_practice/content/image/build.html
ubuntu安装
1)检查系统版本,最好3.8或更高版本
uname -a
sudo apt-get update 更新
更新内核版本:
sudo apt-get install -y --install-recommends linux-generic-lts-xenial
加载内核:sudo update-grub
重启系统:sodu reboot
更新:apt-get update(异常会出现,注释掉/etc/apt/sources.list中的[Ubuntu-Server 14.04.1 LTS _Trusty 即可)
配置grub:
/etc/default/grub,在 GRUB_CMDLINE_LINUX 中添加内核引导参数 cgroup_enable=memory swapaccount=1
安装docker
可能被墙,导致失败curl -sSL https://get.docker.com/ | sh
阿里云安装:curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -
DaoCloud 的安装脚本 :curl -sSL https://get.daocloud.io/docker | sh
安装ssh的安全模块: sudo apt-get install apt-transport-https ca-certificates
$ echo "deb https://apt.dockerproject.org/repo ubuntu-trusty main" | sudo tee /etc/apt/sources.list.d/docker.list
当前用户添加到docker组中: sudo usermod -aG docker $USER
添加 Docker Hub阿里云镜像:/etc/default/docker添加 Docker Hub镜像
DOCKER_OPTS="--registry-mirror=https://jxus37ad.mirror.aliyuncs.com"
重启docker:sudo service docker restart
检查是否生效:ps -ef | grep dockerd(存在上面配置的地址即为生效)
下载镜像规则:docker pull [选项] [Docker Registry地址]<仓库名>:<标签>
默认地址:https://hub.docker.com/r/library/
测试:sudo docker pull ubuntu:14.04
下载后的文件地址sudo docker info来查看(这里的地址为var/lib/docker/aufs/mnt)
运行一个容器:docker run -it --rm ubuntu:14.04 bash(-it交互式操作,--rm退出时删除镜像,bash执行交互式的shell)
镜像列表:docker images(默认为顶层镜像,-a为所有镜像,列出指定的仓库名和标签的镜像)
-f=filter过滤器,-f since=以后,-f before=以前,-q显示镜像id,
以某种格式列出镜像:docker images --format "{{.ID}}: {{.Repository}}"
中间层镜像:顶层镜像会依赖这些镜像,不该被删除
虚悬镜像:名称被新的镜像覆盖变为none()
虚悬镜像列表:docker images -f dangling=true
虚悬镜像删除:docker rmi $(docker images -q -f dangling=true)
下载nginx并且部署:
sudo docker pull nginx:latest
docker run --name webserver -d -p 80:80 nginx
docker exec -it webserver bash
修改nginx服务器主页: echo '
Hello, Docker!
' > /usr/share/nginx/html/index.html查看docker服务器变动:docker diff webserver
保存更改到新的镜像中: sudo docker commit --author "wangzhantao" --message "修改默认主页" webserver nginx:v2
查看更改历史:sudo docker history nginx:v2
docker命令:(pull,push,images, info,kill ,ps(列出所有容器),rename ,restart,rm,start,stop,top = cp,exec,logs ,run)
docker ps -a:列出所有容器包括停止的
docker start/stop cid:启动或者停止一个容器
docker rm `docker ps -a -q`: 强制停止所有容器
docker exec -it 6413712ea685 bash:以命令行的形式进入容器,执行shell命令exit退出
docker inspect --format '{{json .State.Health}}' web3 | python -m json.tool:查看健康状态信息
构建镜像
1)创建Dockerfile
FROM nginx
RUN echo '
Hello, Docker!
' > /usr/share/nginx/html/index.html2)使用创建的Dockerfile创建镜像 (docker build [选项] <上下文路径/URL/->)
sudo docker build -t nginx:v3 .
路径可以是tar、git的url、或者文件
3)上下文,client会将上下文目录内容上传docker的服务端
4)不额外指定 Dockerfile 的话,会将上下文目录下的名为 Dockerfile 的文件作为 Dockerfile
5).dockerignore,该文件是用于剔除不需要作为上下文传递给 Docker 引擎
6)在执行如COPY ./package.json /app/时候,一般源都是相对路径,相对于build中的上下文路径设置的
Dockerfile命令学习