Dock的使用记录

企业应用架构模式

企业批量购书

分享 关注商品举报

企业应用架构模式 [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 '<h1>Hello, Docker!</h1>' > /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 '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html

2)使用创建的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命令学习

猜你喜欢

转载自username2.iteye.com/blog/2410459