docker学习笔记

docker的优点:docker可以用来快速交付应用、复杂环境管理,应用隔离、轻量级

docker与虚拟机的区别

1、容器与容器之间只是进程的隔离,而虚拟机是完全的资源隔离

2、虚拟机的启动可能需要分钟级别,docker启动是秒级甚至更短

3、容器使用宿主操作系统的内核,而虚拟机使用完全独立的内核


docker的架构

CentOS下docker的安装与配置

1、安装依赖:yum install -y yum-utils device-mapper-persistent-data lvm2

2、添加源: yum-config-manager--add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3、安装docker:yum -y install docker-ce

4、启动docker:systemctl start docker 

5、检查docker版本:docker version

6、设置docker为开机自启动:systemctl enable docker

docker常用命令

    基本命令

        docker版本信息查看:docker version

        docker系统信息:docker info

    镜像管理

        查看所有镜像:docker images

        搜索镜像:docker search +镜像名

        拉取下载: docker pull nginx:latest

        导出:docker save nginx > nginx.tar

        导入:docker load < nginx.tar

        删除:docker rmi nginx:latest

        更改镜像名: docker tag nginx:latest nginx:test

        查看镜像创建历史:docker history nginx

    容器管理

        运行容器:docker run -d --name busybox busybox:latest ping 114.114.114.114

        查看运行的容器:docker ps, docker ps -a

        查看容器中运行的进程:docker top nginx

        查看资源占用:docker stats nginx

        容器:docker start/restart/stop/kill nginx

        暂停容器:docker pause/unpause nginx

        强制删除容器:docker rm -f nginx

        执行命令:docker exec -it nginx ls

        复制文件:docker cp busybox:/etc/hosts host

        查看容器日志:docker logs -f nginx

        查看容器内文件结构: docker diff nginx

docker下安装常用工具

    运行Nginx容器

        1、拉取:docker pull nginx:1.17.9

        2、运行:docker run -d --name nginx -p 8080:80 nginx:1.17.9

        3、挂载目录:docker run -d --name nginx1 -p 8089:80 -v ${PWD}/html:/usr/share/nginx/html nginx:1.17.9

    搭建MySQL数据库

        1、docker run -d -p 3306:3306 --name mysql --privileged=true -e MYSQL_ROOT_PASSWORD=1234 mysql:8.0.26

    Testlink部署

        1、部署容器网络: docker network create testlink

        2、运行数据库:docker run -d --name mariadb -e MARIADB_ROOT_PASSWORD=mariadb -e MARIADB_USER=bn_testlink -e MARIADB_PASSWORD=bn_testlink -e MARIADB_DATABASE=bitnami_testlink --net testlink -v ${PWD}/mariadb:/bitnami bitname/mariadb:10.3.22

        3、运行testlink:docker run -d -p 80:80 -p 443:443 --name testlink -e TESTLINK_DATABASE_USER=bn_testlink -e TESTLINK_DATABASE_PASSWORD=bn_testlink -e TESTLINK_DATABASE_NAME=bitnami_testlink --net testlink -v ${PWD}/testlink:bitnami bitnami/testlink:1.9.20

    部署Jenkins

        1、docker hub: https://hub.docker.com/r/jenkins/jenkins

        2、运行:docker run -d --name=jenkins -p 8080:8080 jenkins/jenkins

        3、查看默认密码:docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword

        4、挂载目录:chmod 777 jenkins

                运行:dockerr run --name jenkins -d -p 8080:8080 -p 50000:50000 -v ${PWD}/jenkins:/var/jenkins_home jenkins/jenkins

    部署jira

       1、部署数据库:docker run -d -p 3306:3306 --name mysql_jira --privileged=true -u root -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

        2、docker run -it --link mysql_jira:mysql --rm mysql sh -c 'exec mysql -h "$MYSQL_PORT_3306_TCP_ADDR" -p "$MYSQL_PORT_3306_TCP_PORT

" -uroot -p "$MYSQL_ENV_MYSQL_ROOT_PASSWORD" '

create database jira default  character set utf8 collate utf8_bin

create user 'jira '@'%' identified by 'jira'; grant all on *.* TO 'jira'@'%' with grant option;

alter user 'jira '@'%' identified with mysql_native_password by 'jira';

        3、 修改MySQL事务隔离级别

        set global transaction isolation level read committed;

        set session transaction level read committed;

Dockerfile常用指令

FROM:基础镜像,FROM命令必须是Dockerfile的首个命令

LABEL:为镜像生成元数据标签信息

USER:指定运行容器时的用户名或UI的,后续RUN也会使用指定用户

RUN:RUN命令是Dockerfile执行命令的核心部分,它接受命令作为参数并用于创建艰辛,每条RUN命令在当前基础镜像上执行,并且会提交一个新镜像层

WORKDIR:设置cmd指明的命令的运行目录,为后续的RUN、CMD、ENTRYPOINT、ADD指令配置目录

ENV:容器启动的环境变量

AGR:构建环境的环境变量

COPY:复制文件

ENTRYPOINT:指定容器的”入口“

HEALTHCHECK:容器监控状态检查

docker build

忽略文件:.dockerignore

指定文件:docker build -f

添加标签:docker build -t

不使用缓存:docker build --no-cache

构建时变量:docker build --build-arg

    ARG指令变量


你可能感兴趣的:(docker学习笔记)