docker 拉python镜像 docker怎么拉取镜像_docker


命令格式


docker <选项><命令><参数>


基本命令


帮助命令:
$ docker --help
                                                                                                                                                                                                         
管理命令:                                                                                                               
  config      管理Docker配置
  container   管理容器                                                                                                    
  image       管理镜像
  network     管理网络
  node        管理Swarm节点
  plugin      管理插件
  secret      管理Docker安全
  service     管理服务
  swarm       管理Swarm集群
  system      管理Docker系统
  trust       Manage trust on Docker images                                                                                        
  volume      管理卷
                                                                                                                                   
操作命令:                                                                                                                          
  attach      将标准输入和标准输出连接到正在运行的容器                                        
  build       使用dockerfile文件创建镜像                                                                                     
  commit      从容器的修改项中创建新的镜像
  cp          将容器的目录或文件复制到本地文件系统中
  create      创建一个新的镜像
  diff        检查容器文件系统的修改
  events      实时输出docker服务器中发生的事件
  exec        从外部运行容器内部的命令
  export      将容器的文件系统到处为tat文件包
  history     显示镜像的历史
  images      输出镜像列表
  import      从压缩为tar文件的文件系统中创建镜像
  info        显示当前系统信息、docker容器与镜像个数、设置信息等
  inspect     使用JSON格式显示容器与镜像的详细信息
  kill        向容器发送kill信号关闭容器
  load        从tar文件或标准输入中加载镜像
  login       登录docker注册服务器
  logout      退出docker注册服务器
  logs        输出容器日志信息
  pause       暂停容器中正在运行的所有进程
  port        查看容器的端口是否处于开放状态
  ps          输出容器列表
  pull        从注册服务器中拉取一个镜像或仓库
  push        将镜像推送到docker注册服务器
  rename      重命名一个容器
  restart     重启一个或多个容器
  rm          删除一个或多个容器,若没有指定标签则删除lastest标签。
  rmi         删除一个或多个镜像,若没有指定标签则删除lastest标签。                                                
  run         在一个新容器中中运行命令,用于指定镜像创建容器。
  save        将一个或多个镜像保存为tar包             
  search      从Docker Hub中搜索镜像
  start       启动一个或多个已经停止的容器
  stats       Display a live stream of container(s) resource usage statistics                                                      
  stop        停止一个或多个正在运行的容器
  tag         设置镜像标签
  top         显示容器中正在运行的进程信息
  unpause     重启pause命令暂停的容器
  update      更新一个或多个容器的配置
  version     显示docker版本信息
  wait        等待容器终止然后输出退出码                                                                                                                                   
Run 'docker COMMAND --help' for more information on a command.


容器使用

1.启动一个容器并打开容器终端


$ docker run -it ubuntu /bin/bash


参数说明:

  • -i: 交互式操作。
  • -t: 终端。
  • ubuntu: ubuntu 镜像。
  • /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。

退出终端


# exit


docker 拉python镜像 docker怎么拉取镜像_docker pull拉取镜像_02


2.容器启停

查看所有的容器


$ docker ps -a


启动已停止的容器


$docker start 925d141f0e8b


重启容器


$docker restart 925d141f0e8b


停止容器


$docker stop 925d141f0e8b


删除容器


$docker rm -f c874efe8ce6e


清理所有处于终止状态的容器


$docker container prune


docker 拉python镜像 docker怎么拉取镜像_ubuntu_03


docker 拉python镜像 docker怎么拉取镜像_docker pull拉取镜像_04


3.后台运行一个容器

-d指定容器的运行模式


$ docker run -itd --name ubuntu-test ubuntu /bin/bash


docker 拉python镜像 docker怎么拉取镜像_docker pull拉取镜像_05


注:加了-d参数默认不会进入容器,想要进入容器需要使用指令docker exec。

4.进入容器

在使用 -d

  • docker attach :不推荐,如果从这个容器退出,会导致容器的停止。
  • docker exec推荐,因为此退出容器终端,不会导致容器的停止。

exec命令


$docker exec -it fb9a6c5fd07d /bin/bash


exec帮助命令


$docker exec --help


docker 拉python镜像 docker怎么拉取镜像_ubuntu_06


5.运行一个web应用


# docker pull training/webapp  # 载入镜像
# docker run -d -P training/webapp python app.py


参数说明:

  • -d:让容器在后台运行。
  • -P:将容器内部使用的网络端口映射到我们使用的主机上。


docker 拉python镜像 docker怎么拉取镜像_ubuntu_07


Docker 开放了 5000 端口(默认 Python Flask 端口)映射到主机端口 32769 上.


docker 拉python镜像 docker怎么拉取镜像_ubuntu_08


通过 -p 参数可以设置不一样的端口


docker 拉python镜像 docker怎么拉取镜像_Docker_09


查看容器映射端口


$docker port fe856290ba30


docker 拉python镜像 docker怎么拉取镜像_docker 拉python镜像_10


查看 WEB 应用程序日志


$docker logs -f fe856290ba30


docker 拉python镜像 docker怎么拉取镜像_Docker_11


查看WEB应用程序容器的进程


$docker top magical_kapitsa --可以根据容器id或者name来查询


docker 拉python镜像 docker怎么拉取镜像_Docker_12


docker inspect


$ docker inspect magical_kapitsa


镜像使用

1.镜像列表


$docker images


2.查找镜像


$docker search ubuntu


3.获取一个新的镜像


$docker pull ubuntu:14.04


docker 拉python镜像 docker怎么拉取镜像_docker 拉python镜像_13


  • NAME: 镜像仓库源的名称
  • DESCRIPTION: 镜像的描述
  • OFFICIAL: 是否 docker 官方发布
  • stars: 类似 Github 里面的 star,获赞数
  • AUTOMATED: 自动构建

4.删除镜像


$docker rmi raphal/test
或
$docker rmi 593f61f929f6 --image_id


docker 拉python镜像 docker怎么拉取镜像_docker 拉python镜像_14


5.设置镜像标签


$docker tag fce289e99eb9 raphal/hello-world:v1
--docker tag ,镜像ID [fce289e99eb9],用户名称、镜像源名(repository name)和新的标签名(tag)


使用 docker images 命令可以看到,ID为fce289e99eb9的镜像多一个标签。


docker 拉python镜像 docker怎么拉取镜像_ubuntu_15


6.创建镜像

更新镜像

先使用镜像创建一个容器


$docker run -t -i ubuntu:15.10 /bin/bash


在运行的容器内使用apt-get update命令进行更新


#apt-get update


退出容器


#exit


docker 拉python镜像 docker怎么拉取镜像_ubuntu_16


此时 ID 为 ab40073e7b0b的容器,是按我们的需求更改的容器。我们可以通过命令 docker commit 来提交容器副本。


$docker commit -m="has update" -a="raphal" ab40073e7b0b raphal/ubuntu:v2


  • -m:
  • -a:
  • e218edb10161:容器 ID
  • runoob/ubuntu:v2:


docker 拉python镜像 docker怎么拉取镜像_docker_17


跑一下试试:


$docker run -t -i  raphal/ubuntu:v2 /bin/bash


通过Dockerfile构建镜像(项目中常用方法)

创建Dockerfile文件并写入(参考格式)


FROM    centos:6.7
MAINTAINER      Fisher "test@163.com"

RUN     /bin/echo 'root:123456' |chpasswd
RUN     useradd raphal
RUN     /bin/echo 'raphal:123456' |chpasswd
RUN     /bin/echo -e "LANG="en_US.UTF-8"" >/etc/default/local
EXPOSE  22
EXPOSE  80
CMD     /usr/sbin/sshd -D


具体Dockerfile指令可查看官方说明(这里就不赘述)。

通过 docker build 命令构建一个镜像。


$docker build -t raphal/centos:6.7 .


参数说明:

  • -t
  • .

查看并跑一下


$docker images
$docker run -t -i raphal/centos:6.7  /bin/bash


仓库管理

目前 Docker 官方维护了一个公共仓库 Docker Hub

大部分需求都可以通过在 Docker Hub 中直接下载镜像来实现。

Docker的仓库管理和maven类似,熟悉maven的同学,学习起来比较简单。

先在https://hub.docker.com 免费注册一个 Docker 账号。

登录docker hub(输入用户名和密码)


$ docker login


退出docker hub


$ docker logout


查找镜像


$ docker search ubuntu


拉取镜像


$ docker pull ubuntu


推送镜像


$ docker tag ubuntu:18.04 username/ubuntu:18.04
$ docker image ls

$ docker push username/ubuntu:18.04
$ docker search username/ubuntu

注:username需替换成自己的个人账号


docker 拉python镜像 docker怎么拉取镜像_docker pull拉取镜像_18


从仓库拉取并部署镜像应用实例

1.登录docker


docker login -u"username" -p"password" harbor.xxx.com
或者
docker login --username=srm_devops  https://harbor.xxx.com 
##提示输入密码###


2.拉取镜像


docker pull harbor.xxx.com/srm/srm-pcm-be:66555


3.后台启动容器并进行端口映射


docker run -d -p 8080:8080 -e APOLLO_APP_ID=srm_pcm_be -e CLUSTER=INTERNAL -e ENV=UAT -e APP_PORT=8080 -e confserver_seckey_srm_pcm_be=14dc45ce0ac14747979d70c432e9d06f  1d840238b10c


不带变量例子:


docker run -d --name pcm -p 8000:8000 harbor.xxx.com/srm/srm_pcm_be:latest


4.进入容器


docker exec -it 9df7113d6a51 /bin/bash


5.退出容器


exit