1,目录结构
2,dockerfile文件创建,以nginx为例【命令集,从无到有的构建镜像】
FROM centos:latest ------基于centos系统镜像 MAINTAINER weeds <weedsyl@163.com> ENV TZ "Asia/Shanghai" # 安装依赖 RUN yum -y update && \ ——— RUN命令是Dockerfile执行命令的核心部分。它接受命令作为参数并用于创建镜像 yum install -y gcc automake autoconf libtool make gcc-c++ vixie-cron wget zlib file openssl-devel sharutils zip bash vim cyrus-sasl-devel libmemcached libmemcached-devel libyaml libyaml-devel unzip libvpx-devel openssl-devel ImageMagick-devel autoconf tar gcc libxml2-devel gd-devel libmcrypt-devel libmcrypt mcrypt mhash libmcrypt libmcrypt-devel libxml2 libxml2-devel bzip2 bzip2-devel curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype-devel bison libtool-ltdl-devel net-tools && \ yum clean all # 安装 nginx RUN cd /tmp && \ wget http://nginx.org/download/nginx-1.14.0.tar.gz && \ tar xzf nginx-1.14.0.tar.gz && \ cd /tmp/nginx-1.14.0 && \ ./configure \ --prefix=/usr/local/nginx \ --with-http_ssl_module --with-http_sub_module --with-http_dav_module --with-http_flv_module \ --with-http_gzip_static_module --with-http_stub_status_module --with-debug && \ make && \ make install EXPOSE 80 443 ---- 对外开放端口 #启动nginx CMD ["/usr/local/nginx/sbin/nginx", "-g", "daemon off;”] ----和RUN命令相似,CMD可以用于执行特定的命令。和RUN不同的是,这些命令不是在镜像构建的过程中执行的,而是在用镜像构建容器后被调用
3,docker-compose.yml 文件 以nginx为例 【compose 文件是一个定义服务、 网络和卷的 YAML 文件 。Compose 文件的默认路径是 ./docker-compose.yml】
version : ‘2.1’ ——版本 services : ---服务 nginx : ---名称 build : context : ./nginx ---指定Dockerfile 的文件路径 dockerfile : dockerfile ----使用此 dockerfile 文件来构建,必须指定构建路径 ports : ——映射端口 - "${NGINX_HOST_HTTP_PORT}:80” — 读取.env 文件的NGINX_HOST_HTTP_PORT值,把docker的80端口映射到主机的.env配置端口 - "${NGINX_HOST_HTTPS_PORT}:443" volumes : —--------挂载目录 主机目录:docker容器目录 - ./nginx/logs:/usr/local/nginx/logs - ${WORKPLACE}:/usr/local/nginx/html - ./nginx/conf/nginx.conf:/usr/local/nginx/conf/nginx.conf:ro - ./nginx/conf/vhost:/usr/local/nginx/conf/vhost:ro container_name : nginx ------容器名称 external_links : -----链接到外部容器 - php restart : always ——随docker启动而启用 no php : build : context : ./php dockerfile : dockerfile args: - WEEDS_PHP_VERSION=${PHP_VERSION} ports : - "9000:9000" volumes : - ${WORKPLACE}:/usr/local/nginx/html - ./php/conf/php${PHP_VERSION}.ini:/usr/local/php/lib/php.ini:ro container_name : php external_links : - mysql restart : always
4, .env配置
### NGINX ################################################# NGINX_HOST_HTTP_PORT=80 NGINX_HOST_HTTPS_PORT=443
5,启动目录
sudo docker-compose up -d nginx
6,成功后
docker ps 查看运行中的容器 docker ps -a 查看运行中的容器,包括未运行的 docker images 列出本地镜像 docker kill 「容器id」 杀掉一个运行中的容器或者多个,空格隔开 docker rm 「容器id」 删除一个或多少容器 dokcer rmi 「镜像id」 删除镜像,释放空间 docker-compose restart/start/stop 「容器名称」 重启/启动/停止
7,其他
GitHub地址:https://github.com/weedsks/docker docker官网:https://docs.docker.com/