基础 下载 docker-for-mac[https://hub.docker.com/editions/community/docker-ce-desktop-mac]
安装
open docker.dmg
基础命令 1 2 3 4 docker images docker ps docker build docker stop names
新建一个最简单的 docker
touch Dockerfile
Dockerfile:
1 2 3 FROM alpine:latestMAINTAINER xbfCMD echo "Hello Docker!"
docker build
-t 命名
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ➜ d1 docker build -t hello_docker . Sending build context to Docker daemon 2.048 kB Step 1 /3 : FROM alpine:latest latest: Pulling from library/alpine 921 b31ab772b: Pull completeDigest: sha256:ca1c944a4f8486a153024d9965aafbe24f5723c1d5c02f4964c045a16d19dc54 Status: Downloaded newer image for alpine:latest ---> 4 d90542f0623 Step 2 /3 : MAINTAINER xbf ---> Running in 01 aa981ba138 Removing int ermediate container 01 aa981ba138 ---> c89b7c5681c7 Step 3 /3 : CMD echo "Hello Docker!" ---> Running in b7f3aa198826 Removing int ermediate container b7f3aa198826 ---> fb0e104cddad Successfully built fb0e104cddad Successfully tagged hello_docker:latest
docker images
1 2 3 4 ➜ d1 docker images REPOSITORY TAG IMAGE ID CREATED SIZE hello_docker latest fb0e104cddad 12 seconds ago 5.58 MB alpine latest 4 d90542f0623 2 weeks ago 5.58 MB
运行
1 2 3 ➜ d1 docker run hello_docker Hello Docker!➜ d1
创建简单 nginx
touch Dockerfile
1 2 3 4 5 6 7 8 9 10 11 12 13 14 FROM ubuntuMAINTAINER xbfRUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list RUN apt-get update RUN apt-get install -y nginx COPY index.html /var/www/html ENTRYPOINT ["/usr/sbin/nginx" ,"-g" ,"daemon off;" ] EXPOSE 80
docker build -t xbf/hello-nginx .
docker run -d -p 80:80 xbf/hello-nginx //-d 进程守护,第一个 80,本机端口, :80 docker 端口
检测:
1 2 3 ➜ d2 curl http:// localhost // 缺省80 端口 231321 %➜ d2
Dockerfile 语法\
命令
用途
FROM
base image
RUN
执行命令
ADD
添加文件
COPY
拷贝文件
CMD
执行命令
EXPOSE
暴露端口
WORKDIR
指定路径
MAINTAINER
维护者
ENV
环境变量
ENTRYPIOINT
容器入口
USER
指定用户
VOLUME
mount point
以 nginx 的名字运行(-v?-d?)
docker run -d –name nginx -v /usr/share/nginx/html xbf/hello-nginx
检查:
docker inspect xbf/hello-nginx
存储-volumes 1 2 3 4 5 6 7 8 9 10 11 12 ➜ docker create -v \$PWD /data: /var/mydata --name data_container ubuntu 从一个容器挂载到另一个容器? ➜ docker run -it --volumes-from data_container ubuntu /bin/bash root@35579f978550 :/ root@35579f978550 :/var/mydata root@35579f978550 :/var/mydata ➜ vol3 data ➜ data ls whatever.txt
挂载成功
ctrl+D 退出容器
镜像仓库-Registry 术语
English
中文
host
宿主机
image
镜像
container
容器
registry
仓库
daemon
守护程序
client
客户端
$ docker search whalesay $ docker pull whalesay
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ➜ data docker run docker/whalesay cowsay hahaha! _________ < hahaha! > --------- \ \ \ ## . ## ## ## == ## ## ## ## === /"" "" "" "" "" "" "" "" ___/ === ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~ \______ o __/ \ \ __/ \____\______/ ➜ data
$ docker push myname/whalesay
国内仓库:
daocloud 时速云 aliyun
docker-compose 多容器 app
docker.yaml 常用命令: |命令|用途| |build|本地创建镜像| |command|覆盖缺省命令| |depends_on|连接容器| |ports|暴露端口| |volumes|卷| |images|pull 镜像|
compose 命令 |命令|用途| |–|–| |up|启动服务| |stop|停止服务| |rm|删除服务器中的各个容器| |logs|观察各个容器的日志| |ps|列出服务器相关的容器|