docker 的安装及使用

1.在 Linux 系统中安装 Docker(基于Debian,mac)html

sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get install docker-ce
sudo systemctl enable docker
sudo systemctl start docker复制代码

这些命令度娘一大堆,我就不说了,就说说我安装过程当中碰到的问题吧,node

问题一:python

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" 这里碰到报错: linux

提示要安装python-software-properties外还须要software-properties-common nginx

根据度娘解答输入: sudo apt-get install software-properties-common git

问题二:可是又报错了:warning: Falling back to the standard locale ("C") github

解决: sudo vim /root/.bashrc     web

在尾部加入如下三条定义:       redis

export LANGUAGE="en_US.UTF-8"       docker

export LANG=en_US:zh_CN.UTF-8       

export LC_ALL=C     

编辑完成以后执行:  source /root/.bashrc   ——>使用环境即时生效      

到目前为止,你能够输入 docker version 或者 docker info 看是否安装成功


2. 安装完docker 以后咱们开始学一些指令,docker 的指令仍是不少,我就列举几个比较可能会用到的吧,镜像仓库地址是:hub.docker.com/ 和npm 是同样的,你能够从中找出你须要的镜像

查看镜像: docker images 
拉取镜像:  docker pull nginx (若是后面没有加tag 就默认拉取latest)
搜索镜像: docker search **
管理镜像(获取更加详细的信息): docker inspect redis:3.2
删除镜像: docker rmi ubuntu:latest  **
建立容器: docker create nginx:1.12  / docker create --name nginx nginx:1.12
启动容器: sudo docker start nginx
建立并启动容器: docker run --name nginx -d nginx:1.12(-d 表示Docker 在启动后将程序与控制台分离,使其进入“后台”运行)
管理容器(查看):
docker ps (-a 表示查看因此状态的容器,若是不加表示只查看处于运行中的容器)
中止和删除容器:
(在运行中的容器是不能被删除的, 因此必须先stop)
eg : docker stop nginx  以后 docker rm nginx
进入容器:(若是须要进入容器进行查看或者操做)
docker exec -it nginx bash (docker exec 命令来启动 sh 或 bash,并经过它们实现对容器内的
虚拟环境的控制)
不依赖于容器独立建立数据卷
docker volume create appdata
docker volume ls
删除数据卷
docker volume rm appdata
docker rm -v webapp(经过增长 -v 选项来删除容器关联的数据卷)
docker volume prune -f(删除那些没有被容器引用的数据卷
复制代码


3.文件的挂载是学习docker 比较重要的一部分,它有三种挂载方式:(Bind Mount、Volume 和 Tmpfs Mount)

1.普通挂载: docker run -d --name nginx -v /webapp/html:/usr/share/nginx/html nginx:1.12
(-volume <host-path>:<container-path>)(这里使用绝对路径不能使用相对路径)
2. 启动镜像
3. 数据卷: docker run -d --name webapp -v /webapp/storage webapp:latest(-v <name>:<container-path>)
或者:
docker run -d --name webapp -v appdata:/webapp/storage:ro webapp:latest(:ro 表示readonly)复制代码


4.编写 Dockerfile  和 使用 Docker Compose 管理容器

Dockerfile eg:
FROM node
VOLUME /usr/src/app
WORKDIR /usr/src/app
COPY docker-entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
ENTRYPOINT ["docker-entrypoint.sh"]

Docker Compose 若是每次都使用命令显得有点繁琐,咱们把它写成脚本,这样每次只要执行脚本就行
eg:  在bin 文件下compose文件
#!/bin/bash
root=$(cd `dirname $0`; dirname `pwd`)
docker-compose -p website -f ${root}/compose/docker-compose.yml "$@"

这样每次执行只要./bin/compose up -d

docker-compose.yml 文件:  
version: '3'
#
# 生成环境docker-compose配置文件
#run:
# docker-compose build
# docker-compose up -d
#
services:
  node:
    build: ../dockers/node/
    volumes:
      - .:/usr/src/app
  nginx:
    image: nginx
    volumes:
      - ../build/:/usr/share/nginx/html/
      - ../nginx/default.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      - node
    ports:
      - 3030:80

其余文件的配置详见:  https://github.com/catherine201/ant-ts.git
里面仍是比较细致的;复制代码


refer link: https://github.com/catherine201/ant-ts.git


问题三:

./bin/compose up -d -bash: ./bin/compose: Permission denied

出现Permission denied 是由于没有执行权限,经过下面命令进行添加;

chmod +x ./bin/compose 添加执行权限


感谢阅读,谢谢~~

相关文章
相关标签/搜索