博客
关于我
Docker--安装使用
阅读量:578 次
发布时间:2019-03-11

本文共 2934 字,大约阅读时间需要 9 分钟。

Docker简介

Docker是一款开源的应用容器引擎,基于go语言开发,遵循Apache 2.0协议。其核心优势在于通过沙箱机制独立运行每个容器,确保容器间接口最低,安全性高,同时启动速度快、资源占用小。

Docker 安装

1. 安装 Docker 仓库

在新主机上安装 Docker Engine-Community 之前,需先设置 Docker 仓库。完成后即可从仓库安装和更新 Docker。

sudo yum install -y yum-utils device-mapper-persistent-data lvm2sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.reposudo yum makecache fast

2. 安装 Docker 引擎

2.1 安装最新版本

默认安装最新社区版 Docker 引擎及容器工具:

sudo yum install docker-ce docker-ce-cli containerd.io

2.2 安装特定版本

列出可用版本并安装指定版本:

yum list docker-ce --showduplicates | sort -rsudo yum install docker-ce-18.09.1 docker-ce-cli-18.09.1 containerd.io

Docker 管理

_containerd.io _是 Docker 安装时的基础组件。

systemctl status dockersystemctl stop dockersystemctl start docker

注意:执行容器操作前,确保 Docker 引擎已运行。

镜像管理

镜像是 Docker 容器操作的基础,通过镜像名搜索并下载镜像。

docker search image_namedocker search --filter "is-official=true" image_namedocker search --filter "is-automated=true" image_namedocker search --filter stars=3 image_namedocker pull image_namedocker imagesdocker images image_namedocker rmi image_namedocker commit -a "author" -m "message" container_name/container_id new_image_name:tag_name

容器管理

1. 容器基础操作

创建、查看、启动、停止及退出容器。

docker run -itd --name=container_name image_namedocker psdocker ps -adocker ps -ldocker start container_name/container_iddocker stop container_name/container_iddocker restart container_name/container_iddocker rm container_name/container_iddocker exec -it container_name/container_id /bin/bashexit

2. 容器高级操作

端口映射、文件挂载及互联。

docker run -itd --name=container_name -p 宿主机端口号:容器端口号 image_namedocker run -itd --name=container_name -p 8888:80 -v /usr/local/zy/web01.html:/usr/share/nginx/html/index.html nginxdocker cp 容器名:目录/文件(夹) 宿主机目录/文件(夹)docker cp 宿主机目录/文件(夹) 容器名:目录/文件(夹)

容器间互联有三种主要方式,常用–link 参数实现。

常见案例

数据库和 Web 服务器的容器化实现:

# 创建数据库容器docker run -d --name mysqldb -p3306:3306 -e MYSQL_ROOT_PASSWORD=fanshine mysql/mysql-server# 创建并连接到数据库的 Web 容器docker run -d -p 80:80 --name nginxweb --link mysqldb:mysqldb nginx/nginx-server

#.install MySQL

拉取官方镜像

docker pull mysql

创建挂载目录

mkdir -p /var/cnmp/

启动 MySQL 容器

cd /var/cnmp/docker run -itd -p 3306:3306 --name mysql -v $pwd/mysql/conf:/etc/mysql/conf.d -v $pwd/mysql/logs:/var/logs -v $pwd/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d --privileged=true mysql

使用数据库

docker exec -it mysql /bin/bashmysql -uroot -p123456show databases;create database db01;use db01;create table t_book(id int not null primary key, bookName varchar(20));insert into t_book values(1, 'java');select * from t_book;

修改加密方式(如需)

use mysql;ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';FLUSH PRIVILEGES;

Aliyun 安装 Jenkins

拉取镜像

docker pull jenkins

启动 Jenkins 容器

docker run -itd --name=jenkins -p8080:8080 jenkins

安装和配置

如需配置 Jenkins 实例,访问容器控制台并按提示操作。

docker exec -it jenkins /bin/bashcat /var/jenkins_home/secrets/initialAdminPassword

转载地址:http://lsztz.baihongyu.com/

你可能感兴趣的文章
Python关于isinstance函数的解析 | 附Demo(全)
查看>>
Python3:setup.py:完成所有任务的PIP安装(Build_ext+Install)
查看>>
python4.0 gil_Python 并发编程系列--1、浅谈GIL历史及对多线程的影响
查看>>
python60行绘图程序_天底下最简单的QT画图板,就一个类,60行代码
查看>>
Python: AES加密与解密
查看>>
Python: Range() 最大尺寸;动态的还是静态的?
查看>>
Python: Windows下用 multiprocessing 的深坑
查看>>
python:Could not find platform independent libraries <prefix>解决方法
查看>>
Python:datetime tzinfo 时区名称文档
查看>>
Python:deepcopy(list) vs new_list = old_list[:]
查看>>
Python:Google API - 从消息中获取 mimeTypes
查看>>
Python:Google API - 从消息中获取 mimeTypes
查看>>
Python:subprocess.call,stdout to file,stderr to file,在屏幕上实时显示stderr
查看>>
Python:TypeError:无法连接“str“和“int“对象
查看>>
Python:XPath 在 ElementTree 中不可用
查看>>
Python:从 FTP 服务器下载文件
查看>>
python:从列表中创建元组列表
查看>>
Python:从嵌套列表中删除重复项
查看>>
Python:从间隔映射到值
查看>>
Python:使用 shell=False 的子进程调用不起作用
查看>>