docker安装

linux下的安装

  1. 系统:CentOS7.x
  2. 内核:3.10及以上的kernel内核版本
    可以通过uname -r查看

    $ uname -r

  3. 安装:

    两种安装方式

    1. yum安装
      1.更新yum包
      $ sudo yum update
      2.添加yum仓库
      $ sudo tee /etc/yum.repos.d/docker.repo <<-‘EOF’
      [dockerrepo]
      name=Docker Repository
      baseurl=https://yum.dockerproject.org/repo/main/centos/7/
      enabled=1
      gpgcheck=1
      gpgkey=https://yum.dockerproject.org/gpg
      EOF
      3.安装docker包
      $ sudo yum install docker-engine
      4.运行docker后台进程
      $ sudo service docker start
      5.检测docker是否正确安装
      $ sudo docker run hello-world
    2. 脚本安装
      1.更新yum包
      $ sudo yum update
      2.运行docker安装脚本
      $ curl -fsSL https://get.docker.com/ | sh
      3.运行docker后台进程
      $ sudo service docker start
      4.检测docker是否正确安装
      $ sudo docker run hello-world

windows下的安装

  1. 系统:window10个人版或者64位企业版
  2. 软件下载地址

    docker下载地址:http://www.docker.com/products/docker#/windows
    toolbox下载地址http://www.docker.com/products/docker-toolbox

  3. 安装:

    1.双击InstallDocker.msi来运行docker安装程序,一直点击完成即可
    如果没有InstallDocker.msi文件可以在这里获取
    2.启动docker
    通过docker quick start terminal启动

docker仓库

仓库服务器

拉下官方的registry镜像,并启动镜像

$ docker pull registry
$ docker run -d -p 5000:5000 registry

docker客户端

1.修改docker配置文件如下

$ vi /var/lib/boot2docker/profile

添加–insecure-registry 192.168.1.26:5000
这里写图片描述

2.重启docker服务

$ /etc/init.d/docker restart

3.修改要提交镜像名称
如果本次仓库服务器ip和端口号分别为192.168.1.8:5000
则镜像名修改命令如下

$ docker tag test:latest  192.168.1.8:5000/znms:v1
$ docker push 192.168.1.8:5000/znms:v1

下载仓库镜像

$ docker pull 192.168.1.8:5000/znms:v1

制作docker镜像

通过容器制作docker镜像

$ docker commit 容器id 镜像名称

通过Dockerfile制作docker镜像

编写Dockerfile文件

$ vim Dockerfile

文件内容如下

FROM znms:v1                            #制作镜像所需的基础镜像
MAINTAINER "zhenping" <weizp@zznet.cn>  #维护者名称
WORKDIR /root                           #切换工作目录为root
ADD init.sh /root/                      #把宿主机当前目录下的
                                        #init.sh文件添加到镜像的
                                        #root目录中
EXPOSE 80                               #暴露端口
EXPOSE 3306
EXPOSE 514
EXPOSE 69
EXPOSE 22
EXPOSE 23
ENV LANG en_US.UTF-8                    #修改镜像环境变量
VOLUME /var/www/html/cacti              #添加对外的挂载目录
CMD ["sh","init.sh"]                    #镜像每次启动时都会执行
                                        #init.sh脚本

编写init.sh启动脚本

$ vim init.sh

init.sh脚本内容如下(下面是目前znms需要开机启动的服务):

#!/bin/bash
service crond start
service snmpd start
service mysqld start
#sed是为了让容器启动时候根据环境变量中的REMOTE_HOST来配置php调试服务
sed -i '2000c xdebug.remote_host='$REMOTE_HOST'' /usr/local/php5/etc/php.ini
service php-fpm start
service httpd start
service rsyslog start
service xinetd start
service sshd start
#tailf命令是为了让容器一直有任务执行,否则容器会stop
tailf /var/www/log/error.log

docker常用命令

常用命令列表

作用命令
启动docker服务1.service docker start
2.如果没有docker服务的话执行/etc/init.d/docker restart
关闭docker服务上述命令中的start修改为stop即可
获取镜像docker pull 镜像名称
提交镜像docker push 镜像名称
(符合规范为仓库地址:端口号/仓库名:版本号) 例如:192.168.1.8:5000/znms:v1
以指定镜像运行容器docker run
-i 保持标准输入打开
-d 以后台进程模式重启容器
-p 指定容器暴露端口在宿主机上所对端口
-v 指定容器的挂载目录
-e 指定容器的环境变量
–restart=always 指定docker服务启动时总是启动容器
启动容器docker start 镜像名称
-a 待完成
-i 启动一个容器并进入交互模式;
-t 10 停止或者重启容器的超时时间,超时后系统将杀死进程。
关闭容器docker stop 镜像名称
重启容器docker restart 镜像名称
-a 待完成
-i 重启启动一个容器并进入交互模式;
-t 10 停止或者重启容器的超时时间,超时后系统将杀死进程。
-d 以后台进程模式重启容器
列出所有镜像docker images
列出所有容器docker ps
-a 列出所有容器(含沉睡容器);
删除镜像docker mi 镜像名称
删除容器docker rm 容器id(可以通过docker ps查询)
进入容器docker exec -ti 容器id(可以通过docker ps查询) /bin/bash
退出容器exit
通过容器创建镜像docker commit 容器id 创建镜像名称(镜像名:tag)例如znms:v1
通过Dockerfile创建文件进入到Dockerfile所在目录,
执行docker build -t 镜像名 .
所执行命令的点不可缺少,代表当前目录
修改镜像名称docker tag 镜像名称 要修改成的镜像名称

docker start命令补全

$ docker run -i -d -p 1880:80 -p 13306:3306 -p 122:22 -p 123:23 -p 69:69/udp -p 514:514/tcp -v /Users/apple/znms/03_code/trunk/z-nms:/var/www/html/z-nms -e "REMOTE_HOST=调试ip地址" --restart=always znms:v1
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐