Docker神器的使用
原创 生信小尧 生信小尧 2023-02-21 17:38 发表于广东 收录于合集#linux5个
点击蓝字 关注我们
什么是Docker?
Docker 是一个开源的应用容器引擎
诞生于 2013 年初,基于 Go 语言实现, dotCloud 公司出品(后改名为Docker Inc)
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux 机器上。
容器是完全使用沙箱机制,相互隔离
容器性能开销极低。
Docker 从17.03 版本之后分为CE(Community Edition: 社区版)和EE(Enterprise Edition: 企业版)
Docker安装
Docker可以运行在MAC、Windows、CentOS、UBUNTU等操作系统上,本次分享基于ubuntu安装Docker。
https://docs.docker.com/desktop/install/ubuntu/
# 安装依赖
sudo apt update
sudo apt install apt-transport-https ca-certificates
curl gnupg-agent software-properties-common
# 添加源
curl -fsSL https://download.docker.com/linux/ubuntu/gpg |
sudo apt-key add -
sudo add-apt-repository
"deb [arch=amd64] https://download.docker.com/linux/ubuntu
$(lsb_release -cs) stable"
# 安装 docker
sudo apt install docker-ce docker-ce-cli containerd.io
# 添加用户
## docker 默认需要sudo 才能运行,将用户添加进 docker 组即可直接运行。
sudo usermod -aG docker 用户名
Docker架构
由于国内image下载速度太慢,可以用如下方法提速:
#针对Docker客户端版本大于 1.10.0 的用户
#您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxxxxxx.mirror.aliyuncs.com"]
}#注意xxxxxxxx需自己登录阿里云查看
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
#查看是否添加成功
docker info
#Registry Mirrors:
#https://xxxxxxxx.mirror.aliyuncs.com
Docker命令
#启动和关闭docker(ubuntu)
sudo service docker start
sudo service docker restart
sudo service docker stop
sudo service docker status
#查看本地所有的镜像
docker images
docker images –q # 查看所用镜像的id
#从网络中查找需要的镜像
docker search 镜像名称
#拉取镜像
docker pull 镜像名称
#删除本地镜像
docker rmi 镜像id # 删除指定本地镜像
docker rmi `docker images -q` # 删除所有本地镜像
#查看容器
docker ps # 查看正在运行的容器
docker ps –a # 查看所有容器
#创建并启动容器
docker run 参数
#-i:保持容器运行。通常与 -t 同时使用。加入it这两个参数后,容器创建后自动进入容器中,退出容器后,容器自动关闭。
#-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用。
#-d:以守护(后台)模式运行容器。创建一个容器在后台运行,需要使用docker exec 进入容器。退出后,容器不会关闭。
#-it 创建的容器一般称为交互式容器,-id 创建的容器一般称为守护式容器
#--name:为创建的容器命名。
#进入容器
docker exec 参数 # 退出容器,容器不会关闭
#停止容器
docker stop 容器名称
#启动容器
docker start 容器名称
#删除容器
docker rm 容器名称
#查看容器信息
docker inspect 容器名称
#配置数据卷(可挂载多个数据卷)
docker run ... –v 宿主机目录(文件):容器内目录(文件) ...
#配置映射端口
docker run ... -p 3307:3306 ...
#将容器的 3306 端口映射到宿主机的 3307 端口。
Dockerfile镜像制作
# 挂载本地目录,安装 blast 软件
docker run -it ubuntu bash
apt update
cd /opt/
wget https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ncbi-blast-2.13.0+-x64-linux.tar.gz
tar -zxvf ncbi-blast-2.13.0+-x64-linux.tar.gz
# 将容器 4cba8154cd53 制作为 镜像 blast
docker commit 4cba8154cd53 blast
# 导出为本地文件,重新加载使用 docker load
docker save -o blast.tar blast
Dockerfile
# vim centos_dockerfile
FROM centos:7
MAINTAINER itheima<[email protected]>
RUN yum install -y vim
WORKDIR /usr
CMD /bin/bash
# docker build -f centos_dockerfile -t itheima_centos:1 .
docker run -it --name=c5 itheima_centos:1
什么是Docker Compose?
Docker Compose是一个编排多容器分布式部署的工具,提供命令集管理容器化应用的完整开发周期,包括服务构建启动和停止。使用步骤:
1.利用 Dockerfile 定义运行环境镜像
2.使用 docker-compose.yml定义组成应用的各服务
3.运行 docker-compose up 启动应用
#安装Docker Compose
# Compose目前已经完全支持Linux、Mac OS和Windows,在我们安装Compose之前,需要先安装Docker。下面我 们以编译好的二进制包方式安装在Linux系统中。
curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 设置文件可执行权限
chmod +x /usr/local/bin/docker-compose
# 查看版本信息
docker-compose -version
#卸载Docker Compose# 二进制包方式安装的,删除二进制文件即可rm /usr/local/bin/docker-compose
Docker容器化虚拟化与传统虚拟机比较
上述资料整理于黑马程序员docker课程
开
学
季
你们点点“分享”,给我充点儿电吧~