CentOS和Ubuntu安装Docker的方法

老听说人docker,这两天就来试试看,发现最终用起来和虚拟机vps很像,肤浅认为对硬件和系统各个层面控制不同。

前提条件 

在root权限下,通过 uname -r 命令查看你当前的内核版本

Docker 要求 Ubuntu 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的 Ubuntu 版本是否支持 Docker。

apt-get update
apt-get install -y docker.io

//docker.io ismaintained by Ubuntu
//docker-engine ismaintained by Docker

Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。
Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。

yum -y install docker-io

容器常用命令

service docker start //启动docker服务
service docker stop //停止docker服务
service docker restart //重启docker服务

docker info 或者 docker version 查看安装的信息

二、 docker常用命令

1、docker inspect [容器名orID]/[镜像名orID] //检查镜像或者容器的参数,默认返回 JSON 格式

//获得容器IP
docker inspect cocky_hermann | grep IPAddress
//将容器的8000端口映射到docker主机的8001端口
iptables -t nat -A  DOCKER -p tcp --dport 8080 -j DNAT --to-destination 172.17.0.2:8000

2、docker logs [容器名orID] //获取容器运行时的输出日志

-f 跟踪容器日志的最近更新;
-t 显示容器日志的时间戳;
–tail=”10” 仅列出最新10条容器日志。

3、查看容器目录

docker ps   //查看正在运行的容器
docker ps -a  //查看所有的容器,包括已经停止的

4.查看镜像目录

docker images

5、启动、杀死、停止、删除(删除容器必须先停止,再执行删除)容器

docker start [容器名orID]
docker kill  [容器名orID]
docker stop  [容器名orID]
docker rm    [容器名orID]

6、删除镜像(需要先删除容器,再删镜像)

docker rmi  [镜像名orID]
//强制删除
docker rmi -f <imageID>
//删除所有none镜像
docker rmi $(docker images | grep "none" | awk '{print $3}') 
//删除所有镜像
docker rmi $(docker images -q)

7、查看一个镜像的历史

docker history  [镜像名orID]

8、启动容器

  • 启动容器并启动bash(交互方式):
    docker run -i -t [镜像名orID] /bin/bash
  • 启动容器以后台方式运行(更通用的方式):
    docker run -d -it  [镜像名orID]

9、附着到容器

  • 附着到正在运行的容器:
    docker attach [容器名orID]
  • 进入正在运行的容器内部,同时运行bash(比attach更好用):
    docker exec -t -i [容器名orID]  /bin/bash

10、从dockerhub检索image

docker search [镜像名]

11、拉取、下载镜像

docker pull [镜像名]

这里可能很慢,因为镜像是在国外。使用镜像加速就可以了。

在/etc/docker/daemon.json 文件并添加上 registry-mirrors 键值。如果没有文件,则新建一个。键值如下:

{
  "registry-mirrors": ["https://registry.docker-cn.com"]
}

12、发布镜像

docker push <namespace>/<image name>

13、查看docker基础信息

  • 查看docker版本:
    docker version
  • 查看docker系统的信息
    docker info

14、构建docker镜像

  • 通过commit提交改变构建镜像
    docker commit  [改变了的容器的ID]  [REPOSITORY:TAG]

    如:docker commit 6282cee20e5b anumbrella/ubuntu
    当然还可以更详细一点:
    docker commit -m=”add ssh” –author=”anumbrella” 6282cee20e5b anumbrella/ubuntu:ssh

  • 通过Dockerfile来构建镜像
    docker build -t [REPOSITORY:TAG] -f [Dockerfile文件]  [Dockerfile目录]

    如: docker build -t anumbrella/ubuntu:ssh -f /docker/ubuntu/Dockerfile /docker/ubuntu

15、保存、加载docker镜像

保存镜像

docker save [OPTIONS] IMAGE [IMAGE...]

将docker的镜像打包保存下载下来。
如:
docker save -o myUbuntu.zip anumbrella/ubuntu:ssh
也可以使用
docker save anumbrella/ubuntu:ssh>myUbuntu.zip

加载镜像

docker load [OPTIONS] IMAGE [IMAGE...]

如:
docker load -i myUbuntu.zip
也可以使用
docker load < myUbuntu.zip

//打包镜像
docker save -o python-achievements-image.tar.gz <imageName>
//加载镜像
docker load -i python-achievements-image.tar.gz

docker hub

//登录docker hub,输入用户名userName密码登录
docker login
//退出
docker logout
//命名镜像
docker tag <imageName> <userName>/<imageName>
//发布镜像,在docker hub创建仓库imageName
//构建镜像。将某个容器提交到本地仓库。无需拷贝完整的id,通常来讲最开始的三至四个字母即可区分
docker commit <containerId> <userName>/<imageName>
//将本地仓库推送到远程仓库
docker push <userName/imageName>

//发布镜像后,镜像保存在自己的用户名下,根据用户名可查询所有镜像,然后pull相应的镜像
docker search coldchains

NAME                             DESCRIPTION   STARS     OFFICIAL   AUTOMATED
coldchains/python_achievements                 0                    
coldchains/python-mysql                        0

在容器中的操作

//退出容器并关闭
exit
//退出容器不关闭
control+P+Q

此条目发表在服务器分类目录,贴了标签。将固定链接加入收藏夹。

发表回复