Docker入门笔记

随笔记录初学Docker遇到的问题, 以免下次再犯. 本机系统Ubuntu18.04

安装

Docker有2个版本

  • Community Edition (CE) 社区版(免费)
  • Enterprise Edition (EE) 企业版
  1. 删除旧版

sudo apt-get remove docker docker-engine docker.io

  1. 添加一些依赖包

sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

  1. 添加官方GPG Key

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

  1. 添加apt私有仓库

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

  1. 安装Docker

sudo apt-get update

sudo apt-get install docker-ce

  1. 检测是否安装

docker --version

创建镜像

  1. 新建dotnet控制台项目

mkdir dotnet-test

cd dotnet-test

dotnet new console

  1. 创建Dockerfile并配置
  # 使用官方dotnet运行时作为父镜像
FROM microsoft/dotnet:latest # 设置工作目录
WORKDIR /app # 拷贝.csproj到工作目录/app,然后执行dotnet restore恢复所有安装的NuGet包
COPY *.csproj ./
RUN dotnet restore # 拷贝所有文件到工作目录(/app), 然后利用dotnet-cli发布应用到/app/out目录下
COPY . ./
RUN dotnet publish -c Release -o out # Docker容器启动时运行
ENTRYPOINT [ "dotnet", "/app/out/dotnet-test.dll" ]
  1. 编译docker镜像

docker build -t dotnet-test .

  1. 查看并运行刚才创建的docker镜像

docker images 可以在输出列表中找到dotnet-test所在行

docker run dotnet-test 运行镜像, docker run命令其实是2条命令(docker create, docker start)结合的快捷方式

搭建私服并上传镜像

  1. 更换镜像源, 换成国内网易的源快一点

sudo vim /etc/default/docker 编辑此配置文件, 输入以下内容(注意换成自己IP)

  # Docker Upstart and SysVinit configuration file

  #
# THIS FILE DOES NOT APPLY TO SYSTEMD
#
# Please see the documentation for "systemd drop-ins":
# https://docs.docker.com/engine/admin/systemd/
# # Customize location of Docker binary (especially for development testing).
#DOCKERD="/usr/local/bin/dockerd" # Use DOCKER_OPTS to modify the daemon startup options.
#DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4"
DOCKER_OPTS="--registry-mirror=http://hub-mirror.c.163.com --add-registry 192.9.1.3:5000 --insecure-registry 192.168.1.3:5000" # If you need Docker to use an HTTP proxy, it can also be specified here.
#export http_proxy="http://127.0.0.1:3128/" # This is also a handy place to tweak where Docker's temporary files go.
#export DOCKER_TMPDIR="/mnt/bigdrive/docker-tmp"
  1. https问题

这个问题可能是由于客户端采用https,docker registry未采用https服务所致。一种处理方式是把客户对地址“192.168.1.3:5000”请求改为http

vim /etc/docker/daemon.json 创建并编辑此文件, 输入内容 {"insecure-registries":["192.168.66.100:5000"]}

  1. 重启docker

sudo service docker restart

  1. 拉取registry镜像, 并启动

docker pull registry 拉取registry镜像

sudo docker run -d -p 5000:5000 -v /home/xueyou/Applications/docker/registry:/var/lib/registry registry 后台启动容器, 要用sudo启动才能有网络权限

  1. 上传镜像到私服

docker tag dotnet-test:latest 192.168.1.3:5000/dotnet-test 标记镜像, 将本地镜像和远程私服关联

docker push 192.168.1.3:5000/dotnet-test 镜像上传到私服

docker rmi 192.168.1.3:5000/dotnet-test 删除本地镜像

docker pull 192.168.1.3:5000/dotnet-test 从私服下载镜像

Tips

  • 有时候registry容器删不掉可以执行 sudo killall docker-containerd-shim 然后docker重新运行容器

Docker入门笔记的更多相关文章

  1. Docker入门笔记(1)

    Docker入门笔记(1) 1.安装Docker yum -y install docker-ce 2.查看Docker版本 [root@localhost ~]# docker -v Docker ...

  2. Centos7——docker入门(笔记)

    docker 入门(笔记) 一.Docker是什么? 官方原话: Docker provides a way to run applications securely isolated in a co ...

  3. Docker入门-笔记-1

    Docker入门 Docker 是 Golang 编写的, 自 2013 年推出以来,受到越来越多的开发者的关注.如果你关注最新的技术发展,那么你一定听说过 Docker.不管是云服务还是微服务(Mi ...

  4. Docker 入门笔记

    Docker 可以理解为一个轻量化的虚拟机, 启动速度快,本身占的资源小 [重要], 容器里是不能保存数据的,容器只要一停止, 所有的数据都会丢失,所以如果重要的数据, 都需要通过配制,把数据保存在 ...

  5. 笔记 docker入门笔记

    安装sudo apt-get remove docker docker-engine docker-ce docker.iosudo apt-get updatesudo apt-get instal ...

  6. Docker入门笔记(Centos7)

    centos7 wget https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo vim docker-c ...

  7. docker入门与部署微服务--学习笔记

    最近公司进一步去windows,走向 linux+云化. 原来的一大坨windows虚拟机服务器都要转向linux, 既然走向linux的话,那么docker肯定是要涉足的. 故学习了docker入门 ...

  8. docker学习笔记1 -- 安装和配置

    技术资料 docker中文官网:http://www.docker.org.cn/ 中文入门课程:http://www.docker.org.cn/book/docker.html docker学习笔 ...

  9. Docker入门命令

    Edit Docker入门命令 # 安装镜像sudo docker pull ubuntu:12.04# 镜像列表sudo docker images# 运行镜像sudo docker run -t ...

随机推荐

  1. [Swift]LeetCode73. 矩阵置零 | Set Matrix Zeroes

    Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in-place. Exampl ...

  2. [Swift]LeetCode242. 有效的字母异位词 | Valid Anagram

    Given two strings s and t , write a function to determine if t is an anagram of s. Example 1: Input: ...

  3. linux运维架构师职业规划

    1.假如你从来未接触过Linux的话,首先要做的就找一本指导书来学习.现在公认的Linux的入门书籍是“鸟哥的私房菜”,讲的很全面,鸟哥的私房菜一共分为两部,一部是基础篇,一部是服务器篇.“鸟哥的私房 ...

  4. 【T-SQL】系列文章全文目录(2017-06-26更新)

    本系列[T-SQL]主要是针对T-SQL的总结. SQL基础 [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础]02.联接查询 [T-SQL基础]03.子查询 [T-SQL基础]0 ...

  5. 如何让div内的多行文本上下左右居中

    1.首先,如果div中的文本特别少,不超过div宽度,那么这种就非常简单了,直接line-height等于height就可以了 <style type="text/css"& ...

  6. java代码之美(7)---guava之Bimap

    guava之Bimap bimap的作用很清晰:它是一个一一映射,可以通过key得到value,也可以通过value得到key. 一.概述 1.bimap和普通HashMap区别 (1)在Java集合 ...

  7. 【java爬虫】---爬虫+基于接口的网络爬虫

    爬虫+基于接口的网络爬虫 上一篇讲了[java爬虫]---爬虫+jsoup轻松爬博客,该方式有个很大的局限性,就是你通过jsoup爬虫只适合爬静态网页,所以只能爬当前页面的所有新闻.如果需要爬一个网站 ...

  8. C# 《编写高质量代码改善建议》整理&笔记 --(一)基本语言篇

     题记:这是自己的观后感,工作两年了,本来打算好好学习设计模式,或者作为客户端深入了解GPU编程的,但是突然发现还有这么一本书. <编写高质量代码改善建议>,感觉这正是自己需要的. 我是做 ...

  9. Latex文件分别用Texwork和Winedt打开时,产生中文乱码的解决方法

    中文兼容方法(能保证编译成功) \usepackage{CJK} \begin{document} \begin{CJK}{GBK}{kai} ... 中文 ... \end{CJK} \end{do ...

  10. Android 9.0/P http 网络请求的问题

    Google表示,为保证用户数据和设备的安全,针对下一代 Android 系统(Android P) 的应用程序,将要求默认使用加密连接,这意味着 Android P 将禁止 App 使用所有未加密的 ...