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 添加执行权限
感谢阅读,谢谢~~