docker开发学习

来源:互联网 发布:生化危机解析知乎 编辑:程序博客网 时间:2024/06/07 09:09
常用命令
Docker 阿里云加速https://cr.console.aliyun.com/#/accelerator
docker images 查看运行的镜像
docker build -t 镜像名 路径 构建镜像
docker rmi 删除镜像
docker run --name redislll redis 运行一个新的容器(--name 自定义容器名字
docker run -i -t IMAGE /bin/bash 启动交互式容器(-i 为容器启动一个交互式的守护进程,
-t 为容器创建个伪终端
-m 设置容器占用内存大小(x2)
-d 后台运行容器)
docker info 查看docker系统信息
docker ps 查看运行容器 -a 查看全部运行容器包括停止的
docker start 启动容器
docker stop 停止容器
docker kill 杀死容器
docker rm 删除命令
docker save busybox -1 > /home/save.tar
docker load < /home/save.tar 把一台机器上的镜像迁移到另一台机器的时候
需要保存镜像与加载镜像
docker cp ce58426c830c:/etc/debian . 从容器中拷贝文件出来
docker pull docker.io/mysql:latest 拉取镜像
docker inspect 查看容器也可查看镜像
exit 退出容器并关闭
ctrl + p ctrl + q 退出交互式容器(退出来但不关闭容器)
docker attach 进入交互式容器
docker logs 查看日志(-f 日志实施查看
-t 日志显示时间戳
-tall 显示日志条数)
docker logs -f -t --since='2017-09-04' --tail=10 tomcat_java
docker top 查看运行中进程
docker exec 在运行中的容器启动新的进程(-i 为容器启动一个交互式的守护进程,
-t 为容器创建个伪终端
-d 后台运行容器
docker exit -it tomcat /bin/bash 进入容器里面tomcat)

docker port 查看端口映射
docker commit -a guanheng -m aaa commit_test local/commit_test1 创建镜像(
-a 作者信息
-m 镜像信息
commit_test 容器名称
local 仓库名称
commit_test1 镜像名称)
docker run --volumes-from [CONTAINER NAME] 挂载数据卷容器(NAME已经挂载数据卷的容器)//多个容器共享数据
docker run -volumes-from [container name] -v $(pwd):/backup ubuntu tar xvf/backup.tar [
container data volume] 备份数据卷
docker build -t guanheng:myimage . 通过Dockerfile文件生成镜像
docker login 登录dockerHub
--link container:alias 容器之间的访问通过别名

Dockerfile 指令
# 注释
FROM imget:tag原镜像
MAINTAINER name 指定作者信息
RUN 指定当前镜像中的命令
RUN <command> shell模式
RUN [executable,param1,param2] exec模式
EXPOST <port> 指定运行该镜像的容器的使用端口
CMD [executable,param1,param2] exec模式
CMD command param1 param2 shell
CMD[param1,param2](作为ENTRYPOINT指令的默认参数) 提供容器的默认命令
ENTRYPOINT [executable,param1,param2] exec模式
ENTRYPOINT command param1 param2 shell 不会被run中的命令覆盖
ADD <src> <dest> (ADD适用于tar解压缩)
ADD[<src>,<dest>] (适用于文件路径中有空格)
COPY <src> <dest>
COPY[<src>,<dest>] 把文件复制到docker创建的镜像中
VOLUME [/data] 向镜像容器添加卷
WORKDIR /path/to/workdir 设置工作目录
ENV <key> <value>
ENV <key>=<value> 设置环境变量
USER deamon设置镜像运行用户
ONBUILD [INSTRUCTION] 镜像触发器(当一个镜像被其他镜像作为基础镜像是执行)

test1 docker执行命令
mysql run:
docker run -it -p 13306:3306 -v /root/bbb/docker-entrypoint.sh:/docker-entrypoint.sh -e MYSQL_ROOT_PASSWORD=hello_123 --name dk_mysql1 mysql
tomcat run:
docker run -it --rm -p 38080:8080 \
-v /opt/java/webapps:/usr/local/tomcat/webapps \
-v /opt/java/tomcat-logs:/usr/local/tomcat/logs \
-v /opt/java/webapp-conf:/root/webapp-conf \
-v /opt/java/webapp-logs:/root/webapp-logs \
--name tocmat_java \
tomcat
docker compose Yaml文件
image:镜像的IDbuild:直接从pwd的Dockerfile来build,而非通过image选项来pulllinks:连接到那些容器。每个占一行,格式为SERVICE[:ALIAS],例如 – db[:database]external_links:连接到该compose.yaml文件之外的容器中,比如是提供共享或者通用服务的容器服务。格式同linkscommand:替换默认的command命令
ports: 导出端口。
expose:导出端口,但不映射到宿主机的端口上。它仅对links的容器开放。格式直接指定端口号即可。volumes:加载路径作为卷,可以指定只读模
volumes_from:加载其他容器或者服务的所有卷
env_file:从一个文件中导入环境变量,文件的格式为RACK_ENV=developmentextends:扩展另一个服务,可以覆盖其中的一些选项
net:容器的网络模式,可以为”bridge”, “none”, “container:[name or id]”, “host”中的一个。dns:可以设置一个或多个自定义的DNS地址。dns_search:可以设置一个或多个DNS的扫描域。其他的working_dir, entrypoint, user, hostname, domainname, mem_limit, privileged, restart, stdin_open, tty, cpu_shares,和docker run命令是一样的,这些命令都是单行的命令。
示例:

docker-compose常用命令
--verbose:输出详细信息-f 制定一个非docker-compose.yml命名的yaml文件-p 设置一个项目名称(默认是directory名)docker-compose的动作包括:build:构建服务kill -s SIGINT:给服务发送特定的信号。logs:输出日志port:输出绑定的端口ps:输出运行的容器pull:pull服务的imagerm:删除停止的容器run: 运行某个服务,例如docker-compose run web python manage.py shellstart:运行某个服务中存在的容器。stop:停止某个服务中存在的容器。up:create + run + attach容器到服务。scale:设置服务运行的容器数量。例如:docker-compose scale web=2 worker=3参考:
原创粉丝点击