博客
关于我
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 set([]) 如何检查两个对象是否相等?一个对象需要定义哪些方法来自定义它?
查看>>
Python setup.py:数据文件无法复制目录:不存在或不是常规文件
查看>>
Python setuptools sdist:仅安装版本化文件
查看>>
Python Shell下使用matplotlib
查看>>
Python Slice How-to,我知道Python Slice,但我怎么才能使用内置的Slice对象呢?
查看>>
python socket分包发送数据
查看>>
python socket模块_Python socket模块实现TCP服务端客户端
查看>>
Python SOCKS5代理客户端HTTPS
查看>>
Python Soc网络分析:通过使用函数迭代列表来计算机会网络
查看>>
python转换已转义的字符串
查看>>
Python Sphinx自动摘要:成员函数的自动列表
查看>>
Python SQL和NoSQL数据库操作实战
查看>>
python stdout flush_sys.stdout.flush()方法的用法
查看>>
python string 运算
查看>>
Python str与bytes之间的转换
查看>>
Python subprocess ffmpeg
查看>>
python subprocess Permission denied Errno 13
查看>>
Python subprocess.call - 将变量添加到 subprocess.call
查看>>
Python Subprocess.Popen 从一个线程
查看>>
Python subprocess.Popen 作为 Windows 上的不同用户
查看>>