Docker 使用笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker 使用笔记相关的知识,希望对你有一定的参考价值。

参考技术A 启动docker:进入launchpad,双击docker图标即可启动

镜像:一个特殊的文件系统,提供容器运行所需的程序、库、资源等。可以把它看作一个类。

容器:容器的实质是进程,每个进程最好占用一个容器,比如 jenkins,wiki,jira,gitlab单独放在不同容器中。可以把它看作是镜像的一个实例。

仓库:相当于git的远程仓库,有公开的,也有私有的,表现形式是 仓库名>:标签>,每个标签即为一个远程镜像。

网络:Docker 允许通过外部访问容器或者容器互联的方式来提供网络服务。有多种网络模式。

数据管理:分为数据卷(volume)和挂载主机两种方式

安装docker的时候已经提到如何启动docker

docker search 镜像名> 在官方仓库查找镜像

docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]

docker run [选项] IMAGE [命令][参数..]

docker image ls 列出全部镜像

docker image ls 镜像名> 列出部分镜像

docker system df

仓库名和标签都为 的镜像

docker image ls -f dangling=true 查看虚拟镜像

docker image prune 删除虚拟镜像

docker image rm [选项] 镜像1> [镜像2> ...] 删除本地镜像

docker image rm $(docker image ls -q image_name) 成批删除镜像,用在某个镜像可能有不同tag,但想全部删除的情况

作用:定制镜像

构建镜像:docker build [上下文路径/URL/-],(docker build -t 镜像名> -f . 是常用命令)

Dockerfile 常用指令:

FROM 镜像名> 指定基础镜像

RUN 命令> 执行命令

COPY [--chown= : ] 源路径>... 目标路径> 复制文件

ADD [--chown= : ] 源路径>... 目标路径> 比COPY更高级的复制文件

CMD 容器启动命令

mac下docker使用笔记


安装docker
https://docs.docker.com/mac/

启动docker环境
launchpad -> Docker Quickstart Terminal

                        ##         .

                  ## ## ##        ==

               ## ## ## ## ##    ===

           /"""""""""""""""""\___/ ===

      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~

           \______ o           __/

             \    \         __/

              \____\_______/

docker is configured to use the default machine with IP 192.168.99.101

docker is configured to use the default machine with IP 192.168.99.100
For help getting started, check out the docs at https://docs.docker.com

查看已有虚拟机环境
wei:xcp_esms (develop)admin$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default * virtualbox Running tcp://192.168.99.101:2376 v1.10.1
dev - virtualbox Running tcp://192.168.99.100:2376 Unknown Unable to query docker version: Get https://192.168.99.100:2376/v1.15/version: x509: certificate is valid for 192.168.99.101, not 192.168.99.100

删除docker虚拟机
wei:xcp_esms (develop)admin$ docker-machine rm dev
About to remove dev
Are you sure? (y/n): y
Successfully removed dev

创建docker虚拟机
wei:xcp_esms (develop)admin$ docker-machine create --driver virtualbox --engine-insecure-registry 192.168.40.73:5001 dev
Running pre-create checks...

启动docker虚拟机
wei:xcp_esms (develop)admin$ docker-machine start dev
Starting "dev"...
Machine "dev" is already running.
wei:xcp_esms (develop)admin$ docker-machine env dev
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.102:2376"
export DOCKER_CERT_PATH="/Users/admin/.docker/machine/machines/dev"
export DOCKER_MACHINE_NAME="dev"
# Run this command to configure your shell:
# eval $(docker-machine env dev)

查看docker虚拟机运行信息
wei:xcp_esms (develop)admin$ eval $(docker-machine env dev)


查看docker镜像
wei:xcp_esms (develop)admin$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE

获取镜像
wei:xcp_esms (develop)admin$ docker pull 192.168.40.73:5001/django:1.8.7
1.8.7: Pulling from django
5f70bf18a086: Pull complete
00b3806ef847: Pull complete
a9e0e5075443: Pull complete
f51da0171fb8: Pull complete
94cc93826def: Pull complete
f8c763ed9bc8: Pull complete
Digest: sha256:bf494210a1a42501c73c307113864e3e693aac8ed6d21c008d7c2082c0c65eee
Status: Downloaded newer image for 192.168.40.73:5001/django:1.8.7

查看本地镜像
wei:xcp_esms (develop)admin$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
192.168.40.73:5001/django 1.8.7 e0a79536098c 11 hours ago 522.1 MB

运行django项目
1)将本地路径映射到docker容器 /Users/admin/git/dj18/pad_math2_api:/code
2)在docker容器中运行服务 192.168.40.73:5001/django:1.8.7 python /code/esms/manage.py runserver 0.0.0.0:8080
wei:xcp_esms (develop)admin$ docker run -it --rm --net=host -v /Users/admin/git/dj18/pad_math2_api:/code 192.168.40.73:5001/django:1.8.7 python /code/esms/manage.py runserver 0.0.0.0:8080
Performing system checks...

System check identified no issues (0 silenced).
May 05, 2016 - 20:28:08
Django version 1.8.7, using settings ‘esms.settings‘
Starting development server at http://0.0.0.0:8080/
Quit the server with CONTROL-C.

 

以上是关于Docker 使用笔记的主要内容,如果未能解决你的问题,请参考以下文章

我的docker 使用笔记

云原生之Docker实战使用docker部署Wiznote私人笔记系统

云原生之Docker实战使用Docker部署siyuan个人笔记系统

docker学习笔记- 仓库

云原生之Docker实战使用Docker部署Trilium个人笔记工具

docker学习笔记——创建私有库