Docker使用记录

WIN10安装

1.BIOS开启虚拟化,任务管理器->性能,看虚拟化是否有无被禁用
2.电脑的控制面板->程序->启用或关闭Windows功能->把Hyper-v勾上,启用后电脑会重启,后面就可以下载并安装Docker for Windows了。

docker windows exe下载:
https://hub.docker.com/editions/community/docker-ce-desktop-windows/

更改docker下载源:
右键settings Docker Engine

"registry-mirrors": [
    "https://aad0405c.m.daocloud.io",
    "http://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn"
  ]

测试

docker run hello-world
docker run -p 8088:80 --name webserver -d nginx:stable
docker run -it --name ubuntubash ubuntu bash
docker run -p 3308:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

常用的Docker命令

查看当前 docker 应用的情况

sudo docker ps -l
docker ps -a

docker rm 容器ID/容器名称 //可以根据容器ID或者容器名称删除容器

开启一个名称为unruffled_mcnulty的容器内部

sudo docker start unruffled_mcnulty

关闭一个名称为unruffled_mcnulty的容器内部

sudo docker stop unruffled_mcnulty

进入一个名称为unruffled_mcnulty(或者id也行)的容器内部

sudo docker exec -it unruffled_mcnulty bash
sudo docker exec -it c8058f6d9bf5 bash
sudo docker exec c8058f6d9bf5 bash -c "cd ~/catkin_ws && ls"   //直接执行命令

/etc/hosts 每次启动新容器的时候,里面保存的信息会丢失

拉取一个ros镜像:

sudo docker run -ti mpkuse/kusevisionkit:ros-kinetic-vins

重新命名

sudo docker rename discourse_app disc_app

指定名称,添加一些参数

sudo docker run -d --name new -ti mpkuse/kusevisionkit:ros-kinetic-vins

-d标志告诉docker在后台运行分离模式的容器并打印新的容器ID。
-p 宿主机端口到容器端口的映射
-p 6666:22 将宿主机的6666端口映射为ssh服务端口22
-t让docker分配一个伪终端并绑定到容器的标准输入上, -i则让容器的标准输入保持打开.

sudo docker run --runtime=nvidia -it \
        --add-host `hostname`:172.17.0.1 \
        --env ROS_MASTER_URI=http://`hostname`:11311/ \
        --env CUDA_VISIBLE_DEVICES=0 \
        --hostname happy_go \
        --name happy_go  \
        mpkuse/kusevisionkit:vins-kidnap bash

镜像信息都保存在:

/var/lib/docker
详细的信息可以找:
/var/lib/docker/image/overlay2/repositories.json

查看某一个容器应用的ip地址:

docker inspect <container name>

docker本地文件和容器进行文件交换

docker cp 本地文件路径 ID全称:容器路径

挂载目库

docker run -it -v /test:/soft centos /bin/bash

构建自己的镜像

在文件夹中创建三个文件:Dockerfile,app.py,requirements.txt。分别填写以下内容:
1.Dockerfile:

# Use an official Python runtime as a parent image
FROM python:2.7-slim

# Set the working directory to /app
WORKDIR /app

# Copy the current directory contents into the container at /app
ADD . /app

# Install any needed packages specified in requirements.txt
RUN pip install --trusted-host pypi.python.org -r requirements.txt

# Make port 80 available to the world outside this container
EXPOSE 80

# Define environment variable
ENV NAME World

# Run app.py when the container launches
CMD ["python", "app.py"]

2.app.py:

from flask import Flask
from redis import Redis, RedisError
import os
import socket

# Connect to Redis
redis = Redis(host="redis", db=0, socket_connect_timeout=2, socket_timeout=2)

app = Flask(__name__)

@app.route("/")
def hello():
    try:
        visits = redis.incr("counter")
    except RedisError:
        visits = "<i>cannot connect to Redis, counter disabled</i>"

    html = "<h3>Hello {name}!</h3>" \
           "<b>Hostname:</b> {hostname}<br/>" \
           "<b>Visits:</b> {visits}"
    return html.format(name=os.getenv("NAME", "world"), hostname=socket.gethostname(), visits=visits)

if __name__ == "__main__":
    app.run(host='0.0.0.0', port=80)

3.requirements.txt:

Flask
Redis

运行:

docker build -t friendlyhello .

查看,发现已有新的images:

docker images

运行:

docker run -p 4000:80 friendlyhello
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值