关于Docker 的基本使用

520 阅读3分钟

简介

Docker 是基于Go语言实现的开源容器项目,运行于Linux和windows上的软件,用于创建、管理和编排容器

官网

链接

Docker的基本概念

镜像(Image)

是一个只读模板,用来运行Docker容器。

  • 容器(Container)

负责应用程序的运行,包括操作系统、用户添加的文件以及元数据 容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。

  • 仓库(Repository)

仓库是集中存放镜像文件的场所。 仓库分为公开仓库(Public)和私有仓库(Private)两种形式。

Docker的安装和启用

1、为yum源添加docker仓库位置

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

2、没有安装yum-config-manager这个命令,先安装

yum -y install yum-utils

3、安装docker

 
 yum install docker-ce
 

4、启动docker

systemctl start docker

docker 开启远程访问

1、编辑文件

 vi  /lib/systemd/system/docker.service

2、在文件以下行的后面添加-H tcp://0.0.0.0:2375

ExecStart=/usr/bin/dockerd

3、重启docker网络并重启docker,即可进行远程API调用

systemctl daemon-reload 

systemctl restart docker

docker的基本命令

查找已有容器zookper并启动

docker search zookeeper

docker pull zookeeper

docker run -d -p 2181:2181 zookeeper

docker ps

软件安装

mysql

#下载镜像
docker pull mysql:5.7

#创建实例并启动 
docker run -p 3306:3306 --name mysql 
-v /home/mysql/log:/var/log/mysql 
-v /home/mysql/data:/var/lib/mysql 
-v /home/mysql/conf:/etc/mysql 
-e MYSQL_ROOT_PASSWORD=root 
-d mysql:5.7 --lower_case_table_names=1

## 参数说明
-p 3306:3306:将容器的3306端口映射到主机的3306端口
-v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂在到主机
-v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
-v /mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=root:初始化root用户的密码

## 通过容器命令行连接
docker exec -it mysql mysql -uroot -proot

## 设置远程访问
grant all privileges on .  to 'root' @'%' identified by 'root'; flush privileges;

redis

##下载镜像文件
docker pull redis:3.2

##建实例并启动
docker run -p 6379:6379 --name redis -v /home/redis/data:/data -d redis:3.2 redis-server --appendonly yes

##使用redis镜像执行redis-cli命令连接
docker exec -it redis redis-cli

gitlab

## 拉镜像
docker pull twang2218/gitlab-ce-zh(汉化版)

## 启动
docker run --detach  --hostname 114.115.169.237  --publish 443:443 --publish 80:80 --publish 8888:22  --name gitlab --restart always  --volume /srv/gitlab/config:/etc/gitlab  --volume /srv/gitlab/logs:/var/log/gitlab  --volume /srv/gitlab/data:/var/opt/gitlab  gitlab/gitlab-ce:latest

## 参数说明

--detach: 设置容器后台运行
--hostname: 设置容器的 hostname
--publish: 端口转发规则(80:Http 访问端口,443:Https 访问端口,8888:主机的 ssh 访问端口,22:Docker 容器中 ssh 访问端口)
--name:容器名称
--restart always:每次启动容器就重启GitLab
--volume: 共享目录挂载,即 docker 容器内外数据共享(/srv/gitlab/data: 应用程序数据,/srv/gitlab/logs:GitLab 的 log,/srv/gitlab/config:GitLab 的配置文件)

##安装成功之后,修改文件(默认22修改为8888)
vim   /srv/gitlab/config/gitlab.rb

(gitlab_rails['gitlab_shell_ssh_port'] = 8888)

## 配置修改后,就可以重启 Gitlab 容器了:

docker restart gitlab

rabbitmq

下载镜像文件
docker pull rabbitmq:management

创建实例并启动
docker run -d --name rabbitmq --publish 5671:5671
--publish 5672:5672 --publish 4369:4369 --publish 25672:25672 --publish 15671:15671 --publish 15672:15672
rabbitmq:management

制作镜像

编写dockerfile文件

把dockerfile文件和要部署jar报(或项目放在一起)比如以下为dockerfile的内容

FROM nginx
ENV LANG en_US.UTF-8
ADD dist/  /usr/share/nginx/html/
EXPOSE 80
EXPOSE 443

执行以下命令

在其目录执行以下命令(制作名字为yuan的镜像),..表示执行命令下的dockefile文件,如果要指定文件,把.换成目录路径

docker build -t yuan .

运行镜像生成容器

docker run -p 88:80 -d yuan

命令介绍