Build Ship Run
- 镜像 仓库 容器
- Docker镜像 - 联合文件系统
- Docker容器 - 虚拟机
- Docker仓库
linux
- 安装
- termi 打开终端
- uname -r 版本
- su 切到root用户
- apt-get update 保证最新版本
- 系统自带的安装包 apt-get install -y docker.io 安装docker
- 拉去最新安装包 curl -s https://get.docker.com|sh
- 安装完成
- service docker start 启动
- docker version 版本
包括 Client & Derver 端
使用
- docker pull [
OPTIONS
] NAME[:TAG
] 用来从远程仓库拉取镜像
- OPTIONS 参数
- :TAG 版本
- docker images [
OPTIONS
] [REPOSITORY
[:TAG
]] 查看本机有哪些镜像、pull是否成功
- OPTIONS 参数
- REPOSITORY[:TAG] 指定镜像和tag
- docker run [
OPTIONS
] IMAGE[:TAG] [COMMAND] [ARG...]
运行镜像
- OPTIONS 参数
- IMAGE 镜像名称(必填)
- COMMAND 镜像运行的时候需要执行的命令
- ARG 这条命令所依赖的参数
- docker --help 查看命令
- docker exec [
OPTIONS
] CONTAINER COMMAND [ARG...
] 在一个运行的容器中可以执行的命令
- CONTAINER 容器的名字或ID
- docker exec --help
- docker stop ID 停止
- docker rm ID 删除容器
- docker rmi ID 删除镜像
- 坑1 docker容器启动不了
- 坑2 Error: GPG check FAILED
- 坑3 container启动后退出
- RUN yum install initscripts
运行Nginx
- docker pull hub.c.163.com/library/nginx:latest 网易蜂巢镜像中心
- docker images
- docker ps 查看目前正在这台机器上运行的容器 docker ps -a
- docker run -d hub.c.163.com/library/nginx 后台运行
- docker exec -it f4 bash 进入容器
- ls clear pwd(linux根目录)
- which nginx 查看nginx位置(linux命令)
- ps -ef 当前服务有哪些进程(linux命令)
- exit 退出容器
Docker网络
- 网络类型
- Bridge桥接 docker容器默认分配一个独立的network namespace
- host 与主机通用一个ip和端口
- None 没有网络
- 端口映射 docker run -d -p 8080:80 hub.c.163.com/library/nginx
- 第一个主机端口,第二个容器端口
- netstat -na|grep 8080
制作镜像
- Dockerfile
- docker build -t xxx:latest .
- 当前目录
示例
- 虚拟机上准备好文件,参考
- 创建
init.sh
脚本
#!/bin/bash
START_CMD="jt2_fiqs"
exec service $START_CMD start &
tail -f /dev/null
- 创建
Dockerfile
文件
FROM centos:centos7
MAINTAINER EastSummer
RUN yum install initscripts --nogpgcheck -y
COPY export/ /export/
COPY export/wy/www/jt2_fiqs/bin/jt2_fiqs /etc/init.d/
COPY export/wy/www/jt2_fiqs/bin/init.sh /etc/init.d/
WORKDIR /etc/init.d/
RUN pwd
ENTRYPOINT ["bash","init.sh"]
# CMD ["./init.sh"]
# CMD ["service", "jt_fiqs", "start"]
# CMD ["service", "/etc/init.d/jt_fiqs", "start"]
- docker build -t fiqs:latest .
- docker run -dit -p 8080:8080 fiqs:latest
- docker exec -it ID bash