容器
运行容器
|
|
查看容器
|
|
删除容器
|
|
连接后台运行中的容器
|
|
该命令有时候不方便,因为是同步的,若有多个用户attach到一个容器,一个窗口命令阻塞,其他窗口都无法执行
|
|
导出容器
|
|
镜像
查找镜像
|
|
拉取镜像
|
|
删除镜像
|
|
保存镜像
|
|
导入镜像
|
|
docker 私有仓库搭建
获取registry镜像
1docker pull registry运行镜像 -p端口映射 -v数据卷
1docker run -d -p 5000:5000 -v /data/docker/registry:/tmp/registry registry上传镜像
1docker push 192.168.3.3:5000/java
容器互联
要实现容器互联,需要为容器指定一个方便记忆的名字,通过–name来指定
1docker run -d -it --name test1 gitlab/gitlab-ce启动容器
1docker run -itd --name mysql -v /data/docker/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql连接容器 –link 容器名:别名
1docker run -d -it --name test1 --link mysql:mysql gitlab/gitlab-ce查看hosts和环境变量
1cat /etc/hosts
Dockerfile
基础镜像信息
12345678910111213# 这里注释# 第一行必须指定基础镜像可以多个FROM centos# 维护者信息MAINTAINER tanwenhai tanwenhai@outlok.com# 镜像操作指令VOLUME /tmpADD demo-0.0.1-SNAPSHOT.jar jarENV JAVA_OPTS ""RUN yum -y install mysqlEXPOSE 8080:8080# 容器启动指令CMD ["sh", "-c", "java $JAVA_OPTS -jar app.jar"]语法
FROM 指定基础镜像
格式为FROM image或FROM image:tag
MAINTAINER 维护者信息
MAINTAINER 用户名 邮箱
RUN 镜像操作
run指令在build具有缓存
RUN command 或RUN [“EXECUTABLE”, “param1”…] 后者使用exec运行
CMD 启动命令
多个CMD命令只执行最后一个
CMD 或RUN [“EXECUTABLE”, “param1”…] 使用exec运行
CMD command param1 …
CMD [“param1”, …] 提供给ENTERYPOINT的默认参数- EXPOSE 暴露端口
EXPOSE port [port/protocol…]
ENV 环境变量
ENV key value
ENV key=value …ADD 复制本地目录中的文件到容器中的dest
ADD src dest
COPY 和ADD一样 dest不存在是会自动创建目录
COPY src dest
ENTRYPOINT 容器启动后执行的命令
ENTRYPOINT [“executable”, “param1”, …]
volume 创建数据卷
VOLUME [“/data”]
USER 指定容器运行时的用户名或UID
USER username
WORKDIR 为后续的RUN、CMD、ENTRYPOINT指定配置工作目录
WORKDIR /APP
构建镜像
-t 指定奖项的标签信息 用&&连接命令可以减少镜像大小
docker build -t centos_test .
NetWork
创建网络
1docker network create test_netework查看网络信息
1docker network inspect test_network删除网络
1docker network rm test_network容器使用指定网络 –net
1docker run -itd --net=test_network centos连接容器 网络中所有主机除ip访问外,还可以直接用容器名(container-name)作为hostname相互访问
1docker network connect test_network mysql移除网络
1docker network disconnet test_network mysql