首页 > 代码库 > linux--docker学习笔记
linux--docker学习笔记
安装yum install docker-ioyum upgrade device-mapper-libsservice docker startdocker pull centos //拉取centos镜像, 貌似这个东东在国外 网络很差要等些时间才能下载完 今天: 写支付接口文档; c=>linux 核心编程=>linux网络编程=>c++peimer=>efftcive stl 查看版本:docker -v 查看帮助信息:docker 在官方仓库搜寻镜像:docker search centos 查看本地镜像:docker images 下载仓库镜像到本地:docker pull centos:latest 上传本地镜像到仓库:docker push NAME[:TAG] 将镜像保存为tar文件:docker save -o tar文件 镜像ID/镜像tag 将tar文件加载为镜像:docker load -i tar文件修改镜像tag:docker tag 镜像ID 镜像tag 删除镜像:docker rmi 镜像ID/镜像tag 制作镜像:docker build -t centos:autosshd - < dockerfile.txt查看镜像历史:docker history 镜像ID/镜像tag 创建容器:docker run -d --name=容器名称 镜像ID/镜像tag 杠d是指后台运行 --name相当于mysql语法中 as 例如 docker run --name centosrongqi -i -t centos /bin/bash -i:打开容器中的STDIN -t:为容器分配一个伪tty终端启动容器:docker start 容器名称/容器ID 查看容器:docker ps -a 表示运行过哪些容器 docker commit -m "描述" -a "saymagic" 79c761f627f3 saymagic/ubuntu-nginx:v1 -a可以指定用户信息的rpm -q centos-release centos-release-5-4.el5.centos.1 重启容器:docker restart 容器名称/容器ID停止容器:docker stop 容器名称/容器ID删除容器:docker rm 容器名称/容器ID暂停容器:docker pause 容器名称/容器ID恢复容器:docker unpause 容器名称/容器ID执行命令:docker exec -ti 容器名称/容器ID /bin/bash获取容器日志:docker logs 容器名称/容器ID对image的操作(search、pull、images、rmi、history# 检索image$docker search image_name# 下载image$docker pull image_name# 列出镜像列表; -a, --all=false Show all images; --no-trunc=false Don‘t truncate output; -q, --quiet=false Only show numeric IDs$docker images# 删除一个或者多个镜像; -f, --force=false Force; --no-prune=false Do not delete untagged parents$docker rmi image_name# 显示一个镜像的历史; --no-trunc=false Don‘t truncate output; -q, --quiet=false Only show numeric IDs$docker history image_name 启动容器(run)# 在容器中运行"echo"命令,输出"hello word"$docker run image_name echo "hello word"# 交互式进入容器中$docker run -i -t image_name /bin/bash# 在容器中安装新的程序$docker run image_name apt-get install -y app_name 查看容器(ps)# 列出当前所有正在运行的container$docker ps# 列出所有的container$docker ps -a# 列出最近一次启动的container$docker ps -l 保存对容器的修改(commit)# 保存对容器的修改; -a, --author="" Author; -m, --message="" Commit message$docker commit ID new_image_name6. 对容器的操作(rm、stop、start、kill、logs、diff、top、cp、restart、attach)# 删除所有容器$docker rm `docker ps -a -q`# 删除单个容器; -f, --force=false; -l, --link=false Remove the specified link and not the underlying container; -v, --volumes=false Remove the volumes associated to the container$docker rm Name/ID# 停止、启动、杀死一个容器$docker stop Name/ID$docker start Name/ID$docker kill Name/ID# 从一个容器中取日志; -f, --follow=false Follow log output; -t, --timestamps=false Show timestamps$docker logs Name/ID# 列出一个容器里面被改变的文件或者目录,list列表会显示出三种事件,A 增加的,D 删除的,C 被改变的$docker diff Name/ID# 显示一个运行的容器里面的进程信息$docker top Name/ID# 从容器里面拷贝文件/目录到本地一个路径$docker cp Name:/container_path to_path$docker cp ID:/container_path to_path# 重启一个正在运行的容器; -t, --time=10 Number of seconds to try to stop for before killing the container, Default=10$docker restart Name/ID# 附加到一个运行的容器上面; --no-stdin=false Do not attach stdin; --sig-proxy=true Proxify all received signal to the process$docker attach IDNote: attach命令允许你查看或者影响一个运行的容器。你可以在同一时间attach同一个容器。你也可以从一个容器中脱离出来,是从CTRL-C。7. 保存和加载镜像(save、load)当需要把一台机器上的镜像迁移到另一台机器的时候,需要保存镜像与加载镜像。# 保存镜像到一个tar包; -o, --output="" Write to an file$docker save image_name -o file_path# 加载一个tar包格式的镜像; -i, --input="" Read from a tar archive file$docker load -i file_path# 机器a$docker save image_name > /home/save.tar# 使用scp将save.tar拷到机器b上,然后:$docker load < /home/save.tar8、 登录registry server(login)# 登陆registry server; -e, --email="" Email; -p, --password="" Password; -u, --username="" Username$docker login9. 发布image(push)# 发布docker镜像$docker push new_image_name10. 根据Dockerfile 构建出一个容器#build --no-cache=false Do not use cache when building the image -q, --quiet=false Suppress the verbose output generated by the containers --rm=true Remove intermediate containers after a successful build -t, --tag="" Repository name (and optionally a tag) to be applied to the resulting image in case of success$docker build -t image_name Dockerfile_pat其中<>阔起来的参数为必选,[]阔起来为可选docker version 查看docker的版本号,包括客户端、服务端、依赖的Go等docker info 查看系统(docker)层面信息,包括管理的images, containers数等docker search <image> 在docker index中搜索imagedocker pull <image> 从docker registry server 中下拉imagedocker push <image|repository> 推送一个image或repository到registrydocker push <image|repository>:TAG 同上,指定tagdocker inspect <image|container> 查看image或container的底层信息docker images TODO filter out the intermediate image layers (intermediate image layers 是什么)docker images -a 列出所有的imagesdocker ps 默认显示正在运行中的containerdocker ps -l 显示最后一次创建的container,包括未运行的docker ps -a 显示所有的container,包括未运行的docker logs <container> 查看container的日志,也就是执行命令的一些输出docker rm <container...> 删除一个或多个containerdocker rm `docker ps -a -q` 删除所有的containerdocker ps -a -q | xargs docker rm 同上, 删除所有的containerdocker rmi <image...> 删除一个或多个imagedocker start/stop/restart <container> 开启/停止/重启containerdocker start -i <container> 启动一个container并进入交互模式docker attach <container> attach一个运行中的containerdocker run <image> <command> 使用image创建container并执行相应命令,然后停止docker run -i -t <image> /bin/bash 使用image创建container并进入交互模式, login shell是/bin/bashdocker run -i -t -p <host_port:contain_port> 将container的端口映射到宿主机的端口 例如 docker run -d -p 81:80 centos-nginx /usr/local/openresty/nginx/sbin/nginx docker run -d -p 192.168.9.11:2201:22 nginx/centos /usr/sbin/sshd -D 用ssh root@192.168.9.11 -p 2201 连接容器,提示: Connection to 192.168.1.205 closed.(此问题还未解决!!!) docker commit <container> [repo:tag] 将一个container固化为一个新的image,后面的repo:tag可选docker build <path> 寻找path路径下名为的Dockerfile的配置文件,使用此配置生成新的imagedocker build -t repo[:tag] 同上,可以指定repo和可选的tagdocker build - < <dockerfile> 使用指定的dockerfile配置文件,docker以stdin方式获取内容,使用此配置生成新的imagedocker port <container> <container port> 查看本地哪个端口映射到container的指定端口,其实用docker ps 也可以看到
linux--docker学习笔记
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。