Docker安装使用及常用命令

一、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 repo
yum-config-manager --add-repo  https://download.docker.com/linux/centos/docker-ce.repo

# 更新yum package index
yum makecache fast

# 安装最新版本docker
yum install docker-ce
# 或者指定版本安装
yum install docker-ce-17.03.1-ce

# 编辑/etc/docker/daemon.json,内容如下:
{
  "storage-driver": "devicemapper"
}

# 启动docker
service docker start
  • Ubuntu环境
sudo apt-get update

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository \
  "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) \
  stable"

sudo apt-get update
apt-cache madison docker-ce
sudo 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 # 列出images
docker images -a # 列出所有的images(包含历史)
docker rmi  <image ID> # 删除一个或多个image

# 查看容器
docker ps #列出当前所有正在运行的container
docker ps -l #列出最近一次启动的container
docker 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> #开启/停止/重启container
docker exec -it [container_id] /bin/bash #进入正在运行的docker容器

# 删除容器
docker rm <container...> #删除一个或多个container
docker rm `docker ps -a -q #删除所有的container
docker 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:8080

iptables -t nat -A POSTROUTING -s 172.17.0.3/32 -d 172.17.0.3/32 -p tcp -m tcp --dport 8080 -j MASQUERADE

iptables -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
# 打tag
docker 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
 done
echo "======== end clean docker containers logs ========"

理解有限,欢迎指正批评

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值