Docker入门

1. Docker

docker

 Docker 是开源的应用容器引擎,为任何应用创建一个轻量级的、可移植的、自给自足的容器。

 可用于web应用的自动化打包和发布,自动化测试和持续集成。

 Docker 使用C/S架构模式,使用远程API来管理和创建Docker容器。Docker 容器通过 Docker 镜像来创建。

 Docker是开源的,遵从Apache2.0协议,源代码托管在 Github 上。

 

2.Docker与虚拟机比较

Docker是在操作系统上复用实现虚拟化,VM是在硬件的基础上虚拟出多个操作系统,所以Docker资源占用少,启动快,项目的部署和运维方便。

3.Ubuntu 中安装 Docker

安装环境:ubuntu 16.04 LTS ,安装步骤可以查看官方帮助

sudo apt-get install docker-engine

启动Docker服务

systemctl start docker   或    service docker start

client是Docker命令行程序,用于和server交互。

server是Docker服务端,包含docker引擎。

接下来运行hello-world,验证Docker安装成功

docker run hello-world

4.下载使用ubuntu镜像

docker pull ubuntu

查看已经下载到本地镜像,当镜像有更新时docker在run时会自动拉取新的镜像

#运行ubuntu镜像

# docker run <相关参数> <镜像 ID> <初始命令>
# -i:表示以“交互模式”运行容器     -d   使容器后台运行
# -t:表示容器启动后会进入其命令行
# -v:表示需要将本地目录挂载到容器中,
# 格式:-v <宿主机目录>:<容器目录>
docker run -it -v /data:/data ubuntu bash

可以看到已经进入ubuntu bash,并且本地目录已挂载到容器中,文件也能访问,然后可以在容器中安装tomcat等

exit  退出镜像 

#自己构建镜像(把有修改的container提交成新的Image)

删除镜像

 

#使用Docker运行web Aplication

docker run -d -p 80:5000 training/webapp python app.py

 其中-p 80:5000  是将容器内5000端口映射到本地80端口,此时用浏览器访问localhost:80 即可看到web应用在运行了:)

4.Docker Hub

Docker Hub 是Docker的镜像仓库,可以通过注册账号,上传我们自己的镜像,共享给他人使用或在其他机器下载使用。

Docker Hub同时还提供了自动构建功能,可以自动拉取Github代码并配置Webhook,下次再研究

docker login   登录

docker search centos  查找镜像,结果中前面有/的表示发布自个人的公共镜像

docker push yourname/newimage   推送你的镜像

docker logout  退出登录

5.其他命令

docker --help  显示帮助
docker info 显示docker状态信息 docker version 显示版本信息
docker ps 列出运行中容器
docker ps -a 查看所有容器 -l查看最近容器 -q 只显示容器的ID
docker run -d -P --name iamname training/webapp python app.py -P 缺省端口 --name 自定义容器名字且必须唯一,如果不指定就会随机生成一个
docker stop XX 停止XX容器
docker rm XXname 移除容器
docker inspect name 显示容器详细
docker exec -it db bash 打开一个运行中容器的shell
docker rm `docker ps -a -q` 删除所有容器 注意是 (`) 不是 (')

docker network ls 显示docker网络驱动 ,启动容器时默认使用bridge(桥接网络)
docker network inspect bridge 查看容器的IP地址
docker network create -d bridge my-bridge-network 自定义桥接网络
docker run -d --network=my-bridge-network --name db training/postgres 启动时指定网络驱动
docker network connect
my-bridge-network cname 将cname容器附加在某网络上,,---------------- 同一网络下的容器可以相互ping通









 
觉得不错,点个赞吧
原文地址:https://www.cnblogs.com/luangeng/p/5730551.html