Docker安装使用及常用命令

来源:互联网 发布:22周四维彩超正常数据 编辑:程序博客网 时间:2024/06/05 01:12

一、Docker简介

概念:镜像(Image) 容器(Container) 仓库(Repository)

官网:https://www.docker.com/
文档库:https://docs.docker.com/
镜像仓库:https://hub.docker.com/

二、安装步骤

  • Centos环境
# 删除旧版本sudo yum remove docker \ docker-common \ container-selinux \ docker-selinux \ docker-engine# 安装部分工具包yum install -y yum-utils device-mapper-persistent-data lvm2# 添加稳定的docker yum repoyum-config-manager --add-repo  https://download.docker.com/linux/centos/docker-ce.repo# 更新yum package indexyum makecache fast# 安装最新版本dockeryum install docker-ce# 或者指定版本安装yum install docker-ce-17.03.1-ce# 编辑/etc/docker/daemon.json,内容如下:{  "storage-driver": "devicemapper"}# 启动dockerservice docker start
  • Ubuntu环境
sudo apt-get updatesudo apt-get install \    apt-transport-https \    ca-certificates \    curl \    software-properties-commoncurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -sudo apt-key fingerprint 0EBFCD88sudo add-apt-repository \  "deb [arch=amd64] https://download.docker.com/linux/ubuntu \  $(lsb_release -cs) \  stable"sudo apt-get updateapt-cache madison docker-cesudo apt-get install docker-ce=17.03.1~ce-0~ubuntu-xenial# 问题描述:/var/lib/docker contains several valid graphdrivers: aufs, devicemapper; Please cleanup or explicitly choose storage driv ?# 解决方案:mv /var/lib/docke/devicemapper/ /opt/

三、常用命令

# 系统命令chkconfig docker on  # 加入开机启动service docker start/stop/status # 启动停止docker服务# 基本信息查看docker version # 查看docker的版本号,包括客户端、服务端、依赖的Go等docker info # 查看系统(docker)层面信息,包括管理的images, containers数等docker run -i -t centos /bin/bash # bash操作容器# 镜像管理docker search <image> # 搜索镜像docker pull <image>:<version>  # 下载镜像,version版本可不写,默认下载latest版本。docker images # 列出imagesdocker images -a # 列出所有的images(包含历史)docker rmi  <image ID> # 删除一个或多个image# 查看容器docker ps #列出当前所有正在运行的containerdocker ps -l #列出最近一次启动的containerdocker ps -a #列出所有的container(包含历史,即运行过的container)docker ps -q #列出最近一次运行的container ID# 创建容器docker run -i -t sauloal/ubuntu14.04 #简单创建命令docker run -itd -p 8081:8080 -v /opt/local_dir/:/contianer/ --name server-docker xserver:1.0.1 -f /container/server.conf # 多配置创建命令示例-v # 映射宿主机文件或文件夹到容器-p # 映射宿主机的端口到容器对应端口-d # 进入后台运行,否则在当前终端运行并打印日志--restart=always # docker启动后自动重启,运作中出错重启-v /var/run/docker.sock:/var/run/docker.sock # 让容器中可运行docker命令 docker start/stop/restart <container> #开启/停止/重启containerdocker exec -it [container_id] /bin/bash #进入正在运行的docker容器# 删除容器docker rm <container...> #删除一个或多个containerdocker rm `docker ps -a -q #删除所有的containerdocker ps -a -q | xargs docker rm #同上, 删除所有的container# 容器传输文件docker cp ${containerID}:/opt/dir/xxx.jar /opt/localdir# 容器重命名docker rename stoic_meitner demo# 通过容器创建镜像docker commit -a 'first' ubuntu_v1 ubuntu/myubuntu# 查看日志docker logs ${container_id}
  • 容器启动后增加端口映射-应尽量避免!
# 查看iptables -t nat -nvL# 设置iptables -t nat -A DOCKER  -p tcp -m tcp --dport 2202 -j DNAT --to-destination  172.17.0.3:8080iptables -t nat -A POSTROUTING -s 172.17.0.3/32 -d 172.17.0.3/32 -p tcp -m tcp --dport 8080 -j MASQUERADEiptables -t filter -A DOCKER -d 172.17.0.3/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 8080 -j ACCEPT

四、扩展使用

  • 1、web管理工具portainer
# docker中部署:docker run -d -p 9000:9000 portainer/portainer# 如需将本地dockers添加管理,则启动命令为:docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer# 浏览器访问:http://DOCKER_HOST:9000
  • 2、阿里云镜像站
# 登陆docker login --username=${USERNAME} registry.cn-hangzhou.aliyuncs.com# 打tagdocker tag ${IMAGE_ID} registry.cn-hangzhou.aliyuncs.com/wzj/myubuntu:${VERSION}# push到aliyun镜像库docker push registry.cn-hangzhou.aliyuncs.com/wzj/myubuntu:${VERSION}
  • 3、阿里云加速器
    注册阿里云后,根据指示配置使用,为什么使用?因为从hub.docker.com下载镜像太慢了。

  • 4、清理容器日志脚本

#!/bin/sh  echo "======== start clean docker containers logs ========"logfiles=$(find /var/lib/docker/containers/ -name *-json.log)for logfile in $logfiles  do    echo "clean logs : $logfile"    cat /dev/null > $logfile doneecho "======== end clean docker containers logs ========"

理解有限,欢迎指正批评