docker container 历史查找_docker使用教程

  • Post author:
  • Post category:其他


542a2fb3b60485d38114008e9b36cd01.png

上手步骤

安装docker–>普通用户加入docker用户组–>获取镜像–>基于镜像创建容器–>进入容器–>可以在容器里随意捯饬环境或者运行东西啦~

安装docker

sudo apt-get update
sudo apt-get install docker.io

普通用户加入docker用户组

# 新建docker用户组
newgrp docker 
# 为用户组docker增加用户user1
sudo gpasswd -a user1 docker

镜像的使用

# 查找镜像
docker search ubuntu
# 获取新镜像
docker pull ubuntu:13.10  # 获取名为ubuntu:13.10的镜像
# 使用镜像
docker run ubuntu:13.10 # 与创建容器相同,详见下个模块
# 查看镜像
docker images

基于镜像新建容器

<首先要有可使用的镜像,可按上面模块 获取镜像,并查看已有的镜像>

常用方式

# 一般方式
docker run test/ubuntu:v1 # test/ubuntu: 镜像名 v1: tag
# 可以通过指定参数,启动一个bash交互终端
docker run -it test/ubuntu:v1 /bin/bash # 参数-t让Docker分配一个伪终端并绑定在容器的标准输入上,-i让容器的标准输入保持打开

更多选项

# -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用
# -i:以交互模式运行容器,通常与 -t 同时使用 
# -d:后台运行容器,并返回容器ID 
# --name:为容器指定一个名称
# -p:端口映射,格式为:主机(宿主)端口:容器端口 
# -v:   挂载宿主机文件夹,格式为: 宿主机文件夹:容器文件夹 
# --link: 添加链接到另一个容器 
# -m:设置容器使用内存最大值;
# examples
# 使用docker镜像test/ubuntu:v1以后台模式启动一个容器,并将容器命名为mycontainer
docker run -tid --name mycontainer test/ubuntu:v1
# 使用镜像test/ubuntu:v1以后台模式启动一个容器, 并将容器的8080端口映射到宿主机的8080端口
docker run -tid --name mycontainer -p 8080:8080 test/ubuntu:v1
# 使用镜像test/ubuntu:v1以后台模式启动一个容器,并将容器的8080端口映射到宿主机的8080端口
# 并将主机的目录 /home/user1/test_docker 映射到容器的 /home
docker run -tid --name mycontainer -p 8080:8080 -v /home/user1/test_docker:/home test/ubuntu:v1
# 使用镜像test/ubuntu:v1启动一个容器,在容器内执行/bin/bash命令
docker run -it test/ubuntu:v1 /bin/bash

管理容器

# 查看在运行的容器
docker ps 
# 查看所有容器
docker ps -a
# 查看最近创建的n个容器
docker ps -n
# 启动已停止的容器
docker start $CONTAINER_ID
# 终止容器
docker stop $CONTAINER_ID
# 进入在后台的容器 (以-d创建的容器)
docker attach $CONTAINER_ID # 注意:如果从这个容器退出,会导致容器的停止。
docker exec -it $CONTAINER_ID /bin/bash # 如果从这个容器退出,不会导致容器的停止
# 删除容器
docker rm -f $CONTAINER_ID
# 清理所有已停止的容器
docker container prune

# 容器的导入和导出
# 导出容器快照到本地文件 ubuntu.tar
 docker export $CONTAINER_ID > ubuntu.tar
# 从容器快照文件中再导入为镜像
 cat docker/ubuntu.tar | docker import - test/ubuntu:v1 # 将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1:

传输文件

宿主机向Docker容器传送文件

# 复制主机文件夹data到ID为$CONTAINER_ID的容器的/home/test/目录下
docker cp /home/user1/data/ $CONTAINER_ID:/home/test/

Docker容器向宿主机传送文件

# 复制$CONTAINER_ID容器的/home/test/路径下的文件到主机的/home/user1/data/下
docker cp $CONTAINER_ID:/home/test/ /home/user1/data/

新建镜像

以下内容参考自菜鸟教程~

Docker 镜像使用 | 菜鸟教程​www.runoob.com

219017f3090fe5cc3f50755251772d3f.png

1、从已经创建的容器中更新镜像,并且提交这个镜像

# 使用该镜像创建容器,在运行的容器内使用 apt-get update 命令进行更新
# 在完成操作之后,输入 exit 命令来退出这个容器
# 通过命令 docker commit 来提交容器副本
docker commit -m="has update" -a="user1" $CONTAINER_ID user1/ubuntu:v1
#-m: 提交的描述信息
#-a: 指定镜像作者
#user1/ubuntu:v1 指定要创建的目标镜像名

2、使用 Dockerfile 指令来创建一个新的镜像

# 使用命令docker build, 从零开始来创建一个新的镜像。
# 为此,我们需要创建一个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。
$ cat Dockerfile
FROM    centos:6.7
MAINTAINER      Fisher "fisher@sudops.com"

RUN     /bin/echo 'root:123456' |chpasswd
RUN     useradd runoob
RUN     /bin/echo 'user1:123456' |chpasswd
RUN     /bin/echo -e "LANG="en_US.UTF-8"" >/etc/default/local
EXPOSE  22
EXPOSE  80
CMD     /usr/sbin/sshd -D
#每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。
#第一条FROM,指定使用哪个镜像源
#RUN 指令告诉docker 在镜像内执行命令,安装了什么。。。
#然后,我们使用 Dockerfile 文件,通过 docker build 命令来构建一个镜像。
$ docker build -t test/centos:6.7 
#-t :指定要创建的目标镜像名
#. :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径

设置镜像标签

docker tag $IMAGE_ID test/ubuntu:dev



版权声明:本文为weixin_33955307原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。