zoukankan      html  css  js  c++  java
  • docker镜像的使用及相关

    参考网站docker中文网:http://www.docker.org.cn/book/docker/docker-push-image-13.html

    1、搜索容器:
    docker search tutorial
    
    注意:镜像都是按照 “用户名/镜像名” 的方式进行存储的
    2、下载容器:
    docker pull learn/tutorial
    
    3、查看已经下载的镜像信息(均可):
    docker images
    docker image ls
    
    4、在一个容器中运行命令:
    docker run IMAGE [COMMAND] [ARG...]
    docker run learn/tutorial echo "hello world"
    # 在容器中安装一个ping工具
    docker run learn/tutorial apt-get install -y ping
    
    5、在上面容器里安装了新的工具或软件,如果需要保存作为一个新的镜像,使用commit进行提交
    (1)、需要得到你修改的容器的id号
    docker ps -l # 得到最新创建的容器
    docker container ls --all
    
    (2)、将容器制作成镜像
    docker commit container_id IMAGE_NAME
    如:docker commit 4d9272df31c0 learn/ping
    
    (3)、通过查看镜像,就会多了一个learn/ping镜像,这个镜像就可以直接使用了
    docker run learn/ping ping www.baidu.com
    
    6、检查运行中的镜像
    docker ps
    docker inspect container_id  #查看指定容器的详细信息
    
    7、把自己创建的镜像发布到官网上,可供别人使用
    docker push learn/ping
    在这之前需要先登录自己的dockerhub帐号,使用docker login方式按照提示进行登录
    在push自己的镜像之前,需要修改镜像名为规定的格式 xxxx/image_name:TAG
    docker tag old:TAG theorydance/new:TAG 修改为自己的命名开头
    比如我的推送:docker push theorydance/mysql:5.6

    8、进入正在运行的docker容器
    (1).docker attach container_id  #这种方式,所有人进入显示的信息是同步的,如果一个客户端阻塞,则所有的都会阻塞
    (2).docker exec -it container_id /bin/bash # 该方式进行基本上最简单,注意:如果在里面把运行的进程杀掉,因为容器里没有运行的任何东西,就自动关闭了
    (3).在创建容器的时候使用
    docker run -itd learn/ping /bin/bash
    (4).从容器里退出,不是输入exit
    ctrl + D

    9、镜像文件的编译执行:在网上找到镜像文件后,比如https://github.com/docker-library/mysql/blob/4af273a07854d7e4b68c5148b8e23b86aa8706e2/8.0/Dockerfile
    将内容复制保存到一个名为Dockerfile的文件下,并放到一个目录下,然后命令行切换到该目录,执行以下命令即可:
    docker image build -t theorydance/mysql:8.0 .

    docker状态
    service docker start
    service docker status
    service docker stop

     docker有很多命令使用,使用docker run --help方式可以进行查看

    docker container --help等

    docker --help

    可以给docker容器设置固定IP:

    1、需要创建一个自己的网络:

    docker network create --subnet=172.18.0.0/16 mynet

    2、在创建容器的时候,制定IP

    docker run -itd --name test2 --network mynet --ip 172.18.0.2 centos bash

    请参考博客:https://www.cnblogs.com/xuezhigu/p/8257129.html

    3、如果在centos的docker容器中,出现systemctl不能用的情况,使用如下方式解决

    docker run --privileged -dit centos /usr/sbin/init

     docker容器跨宿主机通信

    https://blog.csdn.net/wo18237095579/article/details/83991893#_overlay_network_61
    https://www.cnblogs.com/bigberg/p/8521542.html

  • 相关阅读:
    vim复制
    嵌入式Linux学习(二)
    (Java实现) 洛谷 P1042 乒乓球
    (Java实现) 洛谷 P1042 乒乓球
    (Java实现) 洛谷 P1071 潜伏者
    (Java实现) 洛谷 P1071 潜伏者
    (Java实现) 洛谷 P1025 数的划分
    (Java实现)洛谷 P1093 奖学金
    (Java实现)洛谷 P1093 奖学金
    Java实现 洛谷 P1064 金明的预算方案
  • 原文地址:https://www.cnblogs.com/TheoryDance/p/10324136.html
Copyright © 2011-2022 走看看