Linux培训
达内IT学院
400-111-8989
Docker中关于容器的基本操作
在前边镜像的章节中,我们已经看到了如何基于镜像启动一个容器,即docker run操作。
[root@xxx ~]# docker run -it centos:latest /bin/bash
这里-it是两个参数:-i和-t。前者表示打开并保持stdout,后者表示分配一个终端(pseudo-tty)。除了这两个参数之外,run命令还有很多其他参数。其中比较有用的是-d后台运行:
[root@xxx ~]# docker run centos:latest /bin/bash -c "while true; do echo hello; sleep 1; done" [root@xxx ~]# docker run -d centos:latest /bin/bash -c "while true; do echo hello; sleep 1; done"
这里第二条命令使用了-d参数,使这个容器处于后台运行的状态,不会对当前终端产生任何输出,所有的stdout都输出到log,可以使用docker logs container_name/container_id查看。
启动、停止、重启容器命令:
[root@xxx ~]# docker start container_name/container_id [root@xxx ~]# docker stop container_name/container_id [root@xxx ~]# docker restart container_name/container_id
后台启动一个容器后,如果想进入到这个容器,可以使用attach命令:
[root@xxx ~]# docker attach container_name/container_id
删除容器的命令前边已经提到过了:
[root@xxx ~]# docker rm container_name/container_id
Docker中关于仓库的基本操作
Docker官方维护了一个DockerHub的公共仓库,里边包含有很多平时用的较多的镜像。除了从上边下载镜像之外,我们也可以将自己自定义的镜像发布(push)到DockerHub上。
在镜像操作章节中,我们新建了一个xianhu/centos:git镜像。
访问 #/,如果没有账号,需要先注册一个。
利用命令docker login登录DockerHub,输入用户名、密码即可登录成功:
[root@xxx ~]# docker login Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to # to create one. Username: xianhu Password: Login Succeeded
将本地的镜像推送到DockerHub上,这里的xianhu要和登录时的username一致:
[root@xxx ~]# docker push xianhu/centos:git # 成功推送 [root@xxx ~]# docker push xxx/centos:git # 失败 The push refers to a repository [docker.io/xxx/centos] unauthorized: authentication required
以后别人就可以从你的仓库中下载合适的镜像了。
[root@xxx ~]# docker pull xianhu/centos:gi
对应于镜像的两种创建方法,镜像的更新也有两种:
创建容器之后做更改,之后commit生成镜像,然后push到仓库中。
更新Dockerfile。在工作时一般建议这种方式,更简洁明了。
这里再一次回顾一下三个重要的概念:镜像、容器、仓库:
从仓库(一般为DockerHub)下载(pull)一个镜像,Docker执行run方法得到一个容器,用户在容器里执行各种操作。Docker执行commit方法将一个容器转化为镜像。Docker利用login、push等命令将本地镜像推送(push)到仓库。其他机器或服务器上就可以使用该镜像去生成容器,进而运行相应的应用程序了。
利用Docker创建一个用于Flask开发的Python环境
上边已经解释和练习了Docker的基本操作命令,下边以实例的形式完整走一遍流程。
我们创建一个用于Flask开发的Python环境,包含Git、Python3、Flask以及其他依赖包等。
完整命令如下:
[root@xxx ~]# docker pull centos [root@xxx ~]# docker run -it centos:latest /bin/bash # 此时进入容器,安装Python3、Git、Flask及其依赖包等,安装完成后exit退出 [root@xxx ~]# docker commit -m "Flask" -a "xianhu" container_id xianhu/flask:v1 [root@xxx ~]# docker push xianhu/flask:v1
Docker的功能和特性还有很多,各种运行命令、参数等也都有待学习和练习,比如如何管理数据、如何管理网络、如何互相配合工作、如何编写更专业的Dockerfile等。本文先入门为主,以后有时间再慢慢更新关于Docker的知识。
填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!