Docker 安装与使用
1. Docker 的安装
1.1 docker 的安装
docker是一种容器技术,解决软件跨环境迁移的问题
# 补包
yum install -y yum-utils device-mapper-persistent-data lvm2 unzip
# 添加阿里云仓库
vi /etc/yum.repos.d/aliyum.repo
[base]
name=base
baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/
enabled=1
gpgcheck=0
[extras]
name=extras
baseurl=https://mirrors.aliyun.com/centos/7/extras/x86_64/
enabled=1
gpgcheck=0
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
baseurl=http://mirrors.aliyun.com/epel/7/$basearch
failovermethod=priority
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache
# 安装docker
yum install -y docker-ce docker-ce-cli containerd.io
# 开启路由转发
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p
1.2 配置镜像加速器
访问阿里云相关页面(https://promotion.aliyun.com/ntms/act/kubernetes.html)
搜索镜像服务

点击 管理控制台

执行操作文档中的命令
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://2q6ap672.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

1.3 镜像命令
docker images # 查看镜像
docker search 镜像名 # 搜索镜像
docker pull 镜像名 # 拉取镜像
docker pust 镜像名 # 推送镜像
docker rmi 镜像名 # 删除镜像
1.4 容器命令
docker ps # 查看容器
docker ps -a # 查看所有容器
docker ps -aq # 查看所有容器ID
docker start/stop/restart/inspect/rm 容器名/容器ID # 启动/停止/重启/查看/删除
docker run -d # 创建容器
docker exec -it 容器名/容器ID # 进入容器
1.5 数据卷
宿主机中的一个目录或文件,用于数据持久化和容器间的数据交换
-v /usr/local/conf:/usr/lcoal/conf
# 部署tomcat
# 搜索镜像
docker search tomcat
# 拉取镜像
docker pull tomcat:latest
# 创建容器
docker run -d --name tomcat -p 18080:8080 \
-v /data/docker/volume/tomcat-app/:/usr/local/tomcat/webapps \
tomcat:latest
# 查看容器
docker ps
# 进入容器
docker exec -it tomcat /bin/bash
2. Dockerfile
Dockerfile是一个包含 用于 组合镜像 的命令 的文本文档 。可以使用在命令行中,调用任何命令
Docker 通过 docker build 命令 可以 读取Dockerfile中的指令 并 自动生成新的 镜像
2.1 编写dockerfile
vim Dockerfile
# Description: test image
FROM busybox
LABEL maintainer="natasha <natasha@163.com>" app="httpd"
ENV WEBDIR="/data/web/html"
RUN mkdir -p ${WEBDIR} && echo 'this is a test web' > ${WEBDIR}/index.html
CMD [ "sh","-c","/bin/httpd -f -h ${WEBDIR}" ]
# 构建镜像
docker build -f Dockerfile -t apache:v1 /data/docker/Docker-file
2.2 dockerfile案例
### 提供基础镜像 Centos,(最接近完整虚拟机)
[root@docker-31 /data/docker/images]# cd /data/docker/images/
[root@docker-31 /data/docker/images]# wget http://192.168.6.100/Docker/images/centos7.9.2009.tar
[root@docker-31 /data/docker/images]# docker load < centos7.9.2009.tar
### 创建专用目录和相关的文件
[root@docker-31 /data/docker]# mkdir centos-nginx/
[root@docker-31 /data/docker]# cd centos-nginx/
### 提供水果忍者游戏 和 阿里云yum配置
[root@docker-31 /data/docker/centos-nginx]# cp /etc/yum.repos.d/aliyun.repo ./
[root@docker-31 /data/docker/centos-nginx]# wget http://192.168.6.100/web/fruit-game.tar.gz
[root@docker-31 /data/docker/centos-nginx]# ls
aliyun.repo fruit-game.tar.gz
### 编写Dcokerfile
FROM centos:centos7.9.2009
LABEL author="xunfang" version="7.9.2009" nginx_version="1.20" app="Game"
WORKDIR /etc/yum.repos.d/
RUN rm -rf /etc/yum.repos.d/*.repo
ADD aliyun.repo ./
ADD http://192.168.6.100/web/nginx-1.20.2.tar.gz /usr/local/src
RUN yum clean all && yum makecache && yum install -y gcc zlib zlib-devel pcre pcre-devel openssl openssl-devel && groupadd -g 88 nginx && useradd -g nginx -M -s /sbin/nologin -u 88 nginx && cd /usr/local/src && tar xf nginx-1.20.2.tar.gz && cd nginx-1.20.2 && ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_sub_module --with-http_ssl_module --with-pcre && make && make install
ADD fruit-game.tar.gz /usr/local/nginx/html/
WORKDIR /usr/local/nginx/html
EXPOSE 80/tcp
CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]
### 执行构建
[root@docker-31 /data/docker/centos-nginx]# docker build -t centos-nginx-game:v1 /data/docker/centos-nginx
### 查看镜像
[root@docker-31 /data/docker/centos-nginx]# docker images
### 运行容器:
docker run -d --name nginx-game-1 -p 88:80 centos-nginx-game:v1
### windows测试
http://192.168.10.31:88
### 登录容器查看:
[root@docker-31 /data/docker/centos-nginx]# docker exec -it nginx-game-1 /bin/bash
3. Docker命令小结
docker -v
docker --help
docker version
docker info
docker ps
docker ps -a
docker images
docker search
docker pull
docker save -o
docker load <
docker rmi
docker rm -f
docker attach 返回主程序,1号
docker exec 在主程序上,运行新的程序 非 1号
docker inspect 查看 容器/镜像 明细
ctrl + p + q
docker run -it --name -p -d
docker start 启动一个挂掉的容器
4. Docker-compose
Docker的服务 编排 工具,主要用来构建基于 Docker 的 复杂应用,通过 YAML 文件声明式
# 安装docker-compose
curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 授权
chmod +x /usr/local/bin/docker-compose
# 运行docker-compose
docker-compose up
# 后台运行docker-compose
docker-compose up -d
更多推荐
所有评论(0)