ubuntu1804安装docker和docker-compose的最新2020详细教程docker⽤容器的模式,把各个应⽤在同⼀台宿主机上独⽴分开运营,保持了应⽤程序的独⽴性和安全性。同时具备快速部署的特点,迅速成为各⼤互联⽹公司宠⼉。随之也成为每个开发⼈员必备的技能之⼀
⼀、ubuntu安装docker
1. 关于docker的软件包名
有关docker,docker.io,docker-engine,lxc-docker 的区别?
其中,RHEL/CentOS 软件源中的 Docker 包名为 docker;
Ubuntu 软件源中的 Docker 包名为 docker.io;⽽很古⽼的 Docker 源中 Docker 也曾叫做 lxc-docker。
这些都是⾮常⽼旧的 Docker 版本,并且基本不会更新到最新的版本,⽽对于使⽤ Docker ⽽⾔,使⽤最新版本⾮常重要。
另外,17.04 以后,包名从 docker-engine 改为 docker-ce,因此从现在开始安装,应该都使⽤ docker-ce 这个包。
关于docker ⽬前设计的版本 docker-CE 和 docker-EE
docker-ce 是社区版本是完全免费的;从1.XX版本升级到17.XX版本上的风险是⾮常⼩的;docker-ce 还区分两个版本edge
和stable版本;
dge 版本是每个⽉发布⼀次,喜欢尝新的⽤户可以下载此版本,因此对于安全和错误只能当⽉获取与修复
stable 版本是每个季度更新⼀次,也就是说是稳定版本;
docker-ee 版本是由公司⽀持,可在经过认证的操作系统和云提供商中使⽤,并可运⾏来⾃Docker Store的、经过认证的容
器和插件。对于企业则提供了⼀下收费的⾼级特性。
2. ubuntu上apt⾥版本
使⽤apt-cache show docker 是1.x的 /apt-cache show docker.io 版本都是18.xx的
apt-cache show docker-ce 没有结果,需要⼿动添加安装源
3. 添加docker-ce的安装源
如果有旧版本的docker需要先卸载,会影响运⾏。sudo apt remove docker docker-engine docker.io containerd runc
安装相关的依赖包和⼯具,我们需要https来安装哦
sudo apt install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
添加docker官⽅⽹站的秘钥,这个nginx的安装⼀样,让ubuntu放⼼使⽤它的源
`` sudo curl -fsSL | sudo apt-key add - #注意最后的"-"别少了
确认⼀下秘钥
sudo apt-key fingerprint 0EBFCD88
#如果下⼀下输出,说明添加成功
pub rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid [ unknown] Docker Release (CE deb) <docker@docker>
sub rsa4096 2017-02-22 [S]
添加docker稳定版仓库到ubuntu安装源
sudo add-apt-repository \
"deb [arch=amd64] download.docker/linux/ubuntu \
$(lsb_release -cs) \
stable"
4. ubuntu安装最新的docker社区版
系统更新
sudo apt update
查询docker的版本信息
sudo apt-cache madison docker-ce 或者 apt-cache show docker-ce | grep Version
最新的稳定版是Version: 5:19.03.93-0ubuntu-bionic
执⾏安装命令
sudo apt install docker-ce docker-ce-cli containerd.io
安装制定版本的docker,例如上⾯的:5:19.03.93-0ubuntu-bionic
sudo apt install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
访问过去⽹速低的,可以参考实⽤清华⼤学的安装源,
5. 确认是否安装成功
输⼊命令
sudo docker --version
如果安装成功看到以下输出
Docker version 19.03.9, build 9d988398e7
⼆、docker的简单实⽤
1. 下载官⽅镜像
可以先到docker官⽹查镜像,
实⽤docker pull 镜像名:tag 下载镜像,如果不输⼊tag默认是latest
sudo docker pull redis:6.0.3 #下载最新redis6
2. 查看镜像
sudo docker images
可以看到刚刚下载的redis tag是6.0.3,时间和⼤⼩
3. 启动镜像
实⽤启动命令
sudo docker run -itd --name redis6 -p 6379:6379 redis:6.0.3
# -i 表⽰允许你对容器内的标准输⼊ (STDIN) 进⾏交互。
# -t 表⽰制定⼀个伪终端,⼀般接/bin/bash ⽅便exec进⼊容器后,输⼊执⾏命令
# -d 表⽰后台运⾏,
# --name 表⽰容器的名称,后⾯通过容器名称来,启动,停⽌,重启容器,名字需要唯⼀
# -p 表⽰端⼝映射,前⼀个数是宿主机的开端⼝,后⼀个数是容量⾥⾯的端⼝,可以不⼀样
# 最后是镜像名称和tag
# 更多帮助,docker run --help
4. 查看容器
查看所有运⾏容器 sudo docker ps
查看所有容器包含未运⾏的 sudo docker ps -a
5. 停⽌/重启/启动容器
docker stop/restart/start redis6 #最后是容器名,也可以⽤ps查询的容器ID
6. 进⼊容器⾥⾯
sudo docker exec -it <;容器名> /bin/bash
7. 删除容器
docker rm redis6 #最后是容器名,也可以⽤ps查询的容器ID
三、docker-compose的安装
1. docker-compose简介(以下简称dc)
dc是⼀套管理docker的⼯具,是⽤python编写的,实⽤yml作为配置⽂件
dc的最新的发布版本⽹址github/docker/compose/releases
docker-compose当下最新是1.25.5
2. 可以通过apt install 来安装,但是版本太旧是 Version: 1.17.1-2
3. 实⽤curl安装
sudo curl -L github/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose #赋予可执⾏⽂件
4. 简称是否安装成功
sudo docker-compose --version
ubuntu安装教程如果输出如下说明安装成功, docker-compose version 1.25.5, build 8a1c60f6
四、docker-compose的实⽤
1. 配置⽂件l详解
#版本号对象docker的版本,对应关系,请参考官⽹docs.docker/compose/compose-file/
version: '3.8'
services:
mongodb: #根据你⾃⼰的需要设定名字
#使⽤指定⽬录下的Dockerfile进⾏构建
build: .
#相当于docker run命令的-p参数,⽤于声明对外开放的端⼝
container_name: my_app #声明构建容器的名称,docker-compose start和stop命令可以使⽤
ports:
- "5000:5000"
- "8010:80"
2. docker-compose 常⽤命令需要和l 在同⼀⽬录下执⾏
docker-compose up -d #启动yml⽂件中所有的镜像
docker-compose restart #重启yml⽂件中所有的镜像
docker-compose down #关闭yml⽂件中所有的镜像
注意:如果修改了yml⽂件或.env⽂件,需要先down再up才会⽣效,restart⽆法⽣效
3. 配置⼀个mongodb的compose⽂件
version: '3.8'
networks:
mynet:
external: true
services:
mongodb:
image: mongo:4.2.6
networks:
- mynet
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- /data/mongo_cluster/2727/db:/data/db
-
/data/mongo_cluster/2727/opt:/opt
container_name: mongo_main
environment:
- MONGO_INITDB_ROOT_USERNAME=qumogu
- MONGO_INITDB_ROOT_PASSWORD=Qumogu@1604
command: --auth --bind_ip 0.0.0.0
ports:
- 2727:27017
restart: always
logging:
driver: json-file
options:
max-file: '2'
max-size: 100m
4. 启动docker的容器
启动前需要先创建⽹络
docker network create mynet --driver bridge
docker network ls #显⽰已创建的⽹络
docker-compose up -d 就可以访问了
发布评论