一、docker临时记录
docker 临时记录(阿里云centos7.2.1511 )
查看系统版本号
适用于Redhat/CentOS:
[root@iz2zecm4ndtkaue32tynx5z ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
或者
[root@iz2zecm4ndtkaue32tynx5z ~]# rpm -q centos-release
centos-release-7-2.1511.el7.centos.2.10.x86_64
查看系统内核版本
目前,CentOS 仅发行版本中的内核支持 Docker。
Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。
Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。
uname -r
或者
uname -a
一、通过yum命令在线下载并安装docker
# 安装docker
yum install docker-io # 加入开机启动 chkconfig docker on # 启动docker服务 service docker start
二、docker安装Tomcat容器
#查找服务器的tomcat信息
docker search tomcat
拉取镜像文件
#拉取
docker pull docker.io/tomcat
#或者
docker pull tomcat
#或者拉取指定版本的tomcat
docker pull tomcat:版本号
去哪查看tomcat的tag版本呢?
打开docker hub的官网,搜索tomcat
下载tomcat的Tag Name 为8.0的版本
docker pull tomcat:8.0
1、批量停用容器、删除容器、删除镜像:
停止所有的container,这样才能够删除其中的images:
#批量停止container容器
docker stop -f $(docker ps -aq) #或者 docker stop $(docker ps -a -q) #或者 docker stop $(docker ps -aq)
#批量删除container容器
docker rm -f $(docker ps -aq)
#批量删除images镜像
docker rmi -f $(docker images -aq)
想要删除untagged images,也就是那些id为<None>的image的话可以用
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
后台运行容器时,进入到已经运行的容器里边
#1、创建容器并在后台运行
docker run <--name myubuntu> -dit <image id> /bin/bash
#2、以exec方式进入容器(docker 1.3及上版本)
docker exec -it <container id> /bin/bash
提交镜像到docker hub上
1、需要注册docker hub账号(略)
2、创建仓库
3、docker commit命令
commit 主要用于通过差异性,创建一个新的image,当容器中的文件产生变化后,可以提交生成一个新的image,这可以让你debug出你所做的修改,导出发布到其他服务器,这似乎是一种比Dockerfile更好的管理方式。
默认情况下,在提交时,容器的执行将被暂停,以保证数据的完整性,当然你可以指定选项 p ,来禁止。
用法:docker commit 容器ID [dockerhub 的账号名称]/[仓库名称]:[tag版本号]
参数1:已经启动的容器ID
参数2:dockerhub 的账号名称
参数3:仓库名称
参数4:tag版本号
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c3f279d17e0a ubuntu:12.04 /bin/bash 7 days ago Up 25 hours desperate_dubinsky
197387f1b436 ubuntu:12.04 /bin/bash 7 days ago Up 25 hours focused_hamilton
$ docker commit c3f279d17e0a svendowideit/testimage:version3
f5283438590d
$ docker images
REPOSITORY TAG ID CREATED SIZE
svendowideit/testimage version3 f5283438590d 16 seconds ago 335.7 MB
使用新配置提交容器
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c3f279d17e0a ubuntu:12.04 /bin/bash 7 days ago Up 25 hours desperate_dubinsky
197387f1b436 ubuntu:12.04 /bin/bash 7 days ago Up 25 hours focused_hamilton
$ docker inspect -f "{{ .Config.Env }}" c3f279d17e0a
[HOME=/ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin]
$ docker commit --change "ENV DEBUG true" c3f279d17e0a svendowideit/testimage:version3
f5283438590d
$ docker inspect -f "{{ .Config.Env }}" f5283438590d
[HOME=/ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin DEBUG=true]
使用new CMD
和 EXPOSE
说明提交容器
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c3f279d17e0a ubuntu:12.04 /bin/bash 7 days ago Up 25 hours desperate_dubinsky
197387f1b436 ubuntu:12.04 /bin/bash 7 days ago Up 25 hours focused_hamilton
$ docker commit --change='CMD ["apachectl", "-DFOREGROUND"]' -c "EXPOSE 80" c3f279d17e0a svendowideit/testimage:version4
f5283438590d
$ docker run -d svendowideit/testimage:version4
89373736e2e7f00bc149bd783073ac43d0507da250e999f3f1036e0db60817c0
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
89373736e2e7 testimage:version4 "apachectl -DFOREGROU" 3 seconds ago Up 2 seconds 80/tcp distracted_fermat
c3f279d17e0a ubuntu:12.04 /bin/bash 7 days ago Up 25 hours desperate_dubinsky
197387f1b436 ubuntu:12.04 /bin/bash 7 days ago Up 25 hours focused_hamilton
2、docker push命令
语法:docker push [参数] 名称或者镜像ID[:标记版本号]
查看容器ID(使用docker ps
)然后将其提交为一个新的镜像名称来保存新镜像。
$ docker commit c16378f943fe rhel-httpd
使用新的镜像ID将镜像推送到docker hub仓库。
在此示例中,注册表位于命名registry-host和侦听端口的主机上5000。为此,请使用主机名或IP地址以及注册表的端口标记映像:
$ docker tag rhel-httpd registry-host:5000/myadmin/rhel-httpd
$ docker push registry-host:5000/myadmin/rhel-httpd
上边是官方的示例:
我这里用一个docker hub的官方的redis 生成一个新的redis镜像,push到自己的docker hub仓库。
如图:
去自己的docker hub 仓库查看:
curl提示不支持https协议解决方法
原因是因为在安装curl时使用默认安装,但是默认安装并不支持https协议。
卸载重新安装curl,解压。
在进行编译前,最好先将原curl去掉,应该可以直接yum remove curl卸载。
但是不建议,因为怕影响到其它的程序,所以我的方法是which curl,然后把curl命令的路径名称改掉,例如加一个bak后缀,方便后面重新安装时失败,还可以回退到原来的curl
1、下载curl的解压包
https://curl.haxx.se/download/curl-7.61.0.tar.gz
Docker编排工具Fig介绍
Fig是一个基于Docker的用于快速搭建开发环境的工具,目前Fig团队已经加入Docker公司。Fig通过一个配置文件来管理多个Docker容器,非常适合组合使用多个容器进行开发的场景。Fig可以和Docker一起来构建基于Docker的复杂应用。
安装Fig
Fig是一个Python Package,你可以使用以下命令来安装:
yum install fig -y
或
pip install -U fig
或者
查看版本
fig --version