1、利用官方镜像创建私有镜像仓库
# docker search registry
# docker pull registry //下载registry镜像
运行registry容器
# docker run -d -p 5000:5000 --restart always --name registry registry:2
使用浏览器访问地址http://ipaddr:5000/v2/_catalog,如果页面出现如下内容说明运行正常。
下载Ubuntu镜像从推送到新建仓库。
# docker pull ubuntu
# docker tag ubuntu localhost:5000/ubuntu
# docker push localhost:5000/ubuntu
下载该镜像到本地
【问题】registry容器中镜像文件存储容量需求大应该如何解决?
重新创建一个仓库,端口映射为5001。
docker run -d -p 5001:5000 -v /registry:/var/lib/registry --name registry2 registry:2
2、commit创建镜像
用已经下载的ubuntu镜像创建一个支持交互的容器:
# docker run -it ubuntu /bin/bash
在该容器内做出一些写入操作,如安装软件、添加文件、修改配置等等,如图创建一个demo.txt文件。
删除该容器及其镜像,从私有仓库下载重新获得该镜像,运行为新的容器,并检查容器内容变化。
停用删除容器及其镜像
从私有仓库下载
创建并查看容器
docker history观察镜像变化
3、Dockerfile
创建一个Dockerfile文件
FROM ubuntu
MAINTAINER docker_user docker_user@email.com
RUN apt-get update && apt-get install -y nginx
RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf
CMD /usr/sbin/nginx
运行命令“docker build -t demo .”,其中“.”是上下文路径即当前路径,docker build命令会将这个路径下的所有内容打包给docker引擎。
4、docker-compose
下面用docker-compose方式创建一个Wordpress站点。
首先创建文件夹compose-app,在该文件夹下写入docker.yml文件,文件内容如下:
version: '3.3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}
在当前目录下运行“docker-compose up -d”,如图成功创建容器mysql和wordpress容器。
浏览wordpress站点