1.Docker的介绍:
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
2.Docker的安装:
(1)用户在安装Docker之前,需要满足下面的条件:
①.系统保证为64位。(目前Docker不支持32位cpu)
②运行Linux版本3.8或者跟高版本的内核,一些老版本的2.6x或其后 的内核也能运行Docker,但运行结果会有很大的差异。
③内核必须支持一种适合的存储驱动如:
Device Manager
AUFS
vfs
btrfs
(2)Docker在centos7.x上运行
①查看系统内核版本:
uname -a
②配置epel源:
下载地址:epel下载地址
执行下载命令:wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
③安装Docker
yum install -y docker-io
④查看Docker的版本
docker -v
⑤启动Docker
systemctl start docker
⑥查看Docker详细信息:
docker info
⑦添加阿里云加速器(centos7 以上版本):
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://dhq9bx4f.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker
3.Docker的常用命令
①查看Docker程序是否存在,功能是否正常
docker info
②运行我们的第一个程序:
docker run -i -t centos
-t : 分配一个伪终端
-i :交互模式
命令解释:告诉Docker指定docker run 命令,Docker会先从本地镜像仓库找centos镜像,如果没有,就回去docker.hub公共镜像库里面去找,并下载运行centos
③给容器命名:
Docker会为我们的容器生成一个随机的名称,为了方便好记,当我们在运行docker镜像时,我们可以给Docker取一个名字:
docker run -it --name hello_centos centos
这时–name 后面的hello_centos 就是镜像的名称
④停止容器:
docker stop [容器名|容器ID]
docker stop 5bb9281cf374
docker stop hello_centos
⑤重新开启停止的容器
docker start [容器名|容器ID]
docker start 5bb9281cf374
docker start hello_centos
⑥附着到容器上
Docker容器重新启动后,会沿用docker run命令时指定的参数,所以我们可以用docker attach 附加到指定的容器上
docker attach [容器名|容器ID]
docker attach 5bb9281cf374
⑦创建守护进程容器
docker run -it --name hello_docker -d centos
使用-d 表示以后台守护进程运行
4.容器的镜像和仓库
①什么是镜像
镜像是Docker容器的基石,容器是镜像的运行实例,有了镜像才能启动容器。
②列出本地镜像
docker images
③下载镜像
docker pull tomcat
告诉Docker运行docker pull命令,会从docker hub公共仓库下载Tomcat镜像
④查找镜像
docker search tomcat
使用docker search命令查找所有Docker hub上可用的公共镜像
⑤构建镜像
构建镜像有两种方式:
1)使用docker commit 命令。
创建docker镜像的第一种方法是docker commit命令。我们创建一个容器,并在容器中做出修改,最后将修改后的镜像提交成一个新镜像
我们运行一个容器
docker run -it centos
在容器中安装tomcat
yum install -y tomcat
退出:exit
提交容器
格式:docker commit 容器id 用户名/仓库名
命令:docker commit 9afb8164c10a younijiuxing/tomcat_new
2)使用docker build命令和Dockerfile文件。
并不推荐使用docker commit来构建镜像。相反推荐使用docker build和Dockerfile文件来构建镜像。
我们的第一个Dockerfile:
mkdir static_web
cd static_web/
Dockerfile内容:
# This my first nginx Dockerfile
# Version 1.0
# Base images 基础镜像
FROM centos
#MAINTAINER 维护者信息
MAINTAINER younijiuxing
#ENV 设置环境变量
ENV PATH /usr/local/nginx/sbin:$PATH
#ADD 文件放在当前目录下,拷过去会自动解压
ADD nginx-1.8.0.tar.gz /usr/local/
ADD epel-release-latest-7.noarch.rpm /usr/local/
#RUN 执行以下命令
RUN rpm -ivh /usr/local/epel-release-latest-7.noarch.rpm
RUN yum install -y wget lftp gcc gcc-c++ make openssl-devel pcre-devel pcre && yum clean all
RUN useradd -s /sbin/nologin -M www
#WORKDIR 相当于cd
WORKDIR /usr/local/nginx-1.8.0
RUN ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-pcre && make && make install
RUN echo "daemon off;" >> /etc/nginx.conf
#EXPOSE 映射端口
EXPOSE 80
#CMD 运行以下命令
CMD ["nginx"]