docker安装
linux下的安装
- 系统:CentOS7.x
内核:3.10及以上的kernel内核版本
可以通过uname -r查看$ uname -r
安装:
两种安装方式
- 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 - 脚本安装
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
- yum安装
windows下的安装
- 系统:window10个人版或者64位企业版
软件下载地址
docker下载地址:http://www.docker.com/products/docker#/windows
toolbox下载地址http://www.docker.com/products/docker-toolbox安装:
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