新版博客SEO优化基本完成,新老博客内容正在整合中,保证每篇文章高质量。 SiteMap RSS Github
Docker学习记录(一)
嘉美伯爵   2019年7月15日 11:30   运维   Docker   188  

安装

yum install -y yum-utils device-mapper-persistent-data lvm2  # 安装必要依赖
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #添加阿里源
yum makecache fast # 清楚缓存
yum -y install docker-ce  # 安装
systemctl start docker # 启动

了解容器

可以这么说容器使实例化对象,而镜像则为类。

  • 首先我们先拉去一个镜像
docker pull training/webapp
  • 此时我们运行docker run
# 我们需要注意的是,docker run命令即创建容器命令,此命令执行第一次即会创建一个基于training/webapp 镜像的容器,以后启动容器使用docker start  NAMES、进入容器使用docker exec -it CONTAINER ID /bin/bash  即可
# -d 让容器在后台运行
# -P 将容器内部使用的网络端口映射到我们使用的主机上
# -p 指定端口
docker run -d -P training/webapp python app.py
  • 查看web容器

docker ps

# 此时我们注意到了本地的5000端口映射到了主机的32768端口,当然我们也可指定端口
# docker run -d -p 5000:5000 training/webapp python app.py
[root@gaozhe gage]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                     NAMES
1599d68fb3c8        training/webapp     "python app.py"     About an hour ago   Up 36 minutes       0.0.0.0:32768->5000/tcp   suspicious_elbakyan
  • 进入容器

我们可以注意到已经进入了1599d68fb3c8的容器

  • 运行容器
# 运行基于httpd镜像的容器,后面可添加具体解释器和要运行的程序
docker run -d httpd:latest 
docker run -d -P training/webapp python app.py
  • 详解
# 进入容器,docker start NAMES  ;  COMMAND python app.py  python为解释器 app.py为程序
[root@gaozhe gage]# docker ps  -a 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                     NAMES
3ec72261086a        training/webapp     "python app.py"     About an hour ago   Created                                       friendly_kapitsa

了解镜像

  • 进入webapp 既是我们刚才拉取的镜像信息
# 注意此信息只在该容器下存在
root@1599d68fb3c8:/opt/webapp# ls
Procfile  app.py  requirements.txt  tests.py
  • 进入指定镜像的容器
# 启动容器,启动后不可用此命令
# ubuntu即REPOSITORY  15.10即TAG
# -t:在新容器内指定一个伪终端或终端
# -i:允许你对容器内的标准输入 (STDIN) 进行交互
docker run -t -i ubuntu:15.10 /bin/bash # 直接交互进入httpd的配置根目录
# 进入正在运行的容器,未启动不可用
# 1599d68fb3c8即CONTAINER ID
docker exec -it 1599d68fb3c8 /bin/bash
  • 详解
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
httpd               latest              dabb52744997        4 days ago          178MB
training/webapp     latest              6fae60ef3446        3 years ago         349MB

常用命令

docker build -t friendlyname .# 使用此目录的 Dockerfile 创建镜像
docker run -p 4000:80 friendlyname  # 运行端口 4000 到 90 的“友好名称”映射
docker run -d -p 4000:80 friendlyname         # 内容相同,但在分离模式下
docker ps                                 # 查看所有正在运行的容器的列表
docker stop <hash>                     # 平稳地停止指定的容器
docker ps -a           # 查看所有容器的列表,甚至包含未运行的容器
docker kill <hash>                   # 强制关闭指定的容器
docker rm <hash>              # 从此机器中删除指定的容器
docker rm $(docker ps -a -q)           # 从此机器中删除所有容器
docker images -a                               # 显示此机器上的所有镜像
docker rmi <imagename>            # 从此机器中删除指定的镜像
docker rmi $(docker images -q)             # 从此机器中删除所有镜像
docker login             # 使用您的 Docker 凭证登录此 CLI 会话
docker tag <image> username/repository:tag  # 标记 <image> 以上传到镜像库
docker push username/repository:tag            # 将已标记的镜像上传到镜像库
docker run username/repository:tag                   # 运行