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

  • 相关阅读:
    Python socket 基础(Server)
    Python socket 基础(Client)
    DOM
    Software Testing Concepts
    coroutine
    这一周~&&html+css的学习感悟
    充实的几天~
    时间不够用的感觉
    论文真痛苦
    焦躁的一周……
  • 原文地址:https://www.cnblogs.com/TheoryDance/p/10324136.html
Copyright © 2011-2022 走看看