Docker容器部署运行开发环境(建立ssh,mysql远程访问)
1、系统环境
阿里云服务器 ubuntu18.04.1 64位
2、安装docker
具体docker使用手册
1)先删除可能已有的docker版本
$ sudo apt-get remove docker docker-engine docker.io
2)安装linux-image-extra-*包,以便docker使用aufs存储驱动
$ sudo apt-get update
$ sudo apt-get install \
linux-image-extra-$(uname -r) \
linux-image-extra-virtual
3)更新apt包索引
$ sudo apt-get update
4)安装允许apt通过HTTPS来使用repository的包
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
5)添加Docker的官方GPG key,并验证该key是否安装成功
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
key
6)amd64位机器上使用如下命令来建立稳定的库
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
7)安装Docker CE
$ sudo apt-get update
$ sudo apt-get install docker-ce
安装成功
3、搭建ssh远程访问
1)追加映射22端口
在创建docker境像时并未给22端口设置映射,所以需要追加端口映射到物理机222端口
因为这一步骤是在阿里云服务上实现,所以需要对服务器防火墙增加规则开放222端口
先停止docker的服务(这一步需要建立镜像时考虑周到,虽然可以删除镜像重新部署,但这里也写一下,连同下文的3306Mysql映射也一起弄了)
docker stop 7a0a
systemctl stop docker
再修改一下你对应的docker境像的配置文件,{container_id}需要进containers文件夹复制,因为实在很长。不止7a0afb294b33这段
vi /var/lib/docker/containers/{container_id}/hostconfig.json
找到 这个 PortBindings 值。在这个json集合里边追加新端口,显示成一行比较难找
追加位置
改成
"PortBindings": {
"80/tcp": [
{
"HostIp": "",
"HostPort": "8080"
}
],
"23/tcp": [
{
"HostIp": "",
"HostPort": "22"
}
config.v2.json文件里边也要修改port的配置
追加位置
"Config": {
....
"ExposedPorts": {
"80/tcp": {},
"8888/tcp": {}
},
....
},
"NetworkSettings": {
....
"Ports": {
"80/tcp": [
{
"HostIp": "",
"HostPort": "80"
}
]
}
完成修改之后:wq,然后启动docker的服务和容器,就完成了追加映射
systemctl start docker
docker start 7a0a
2)开始设置ssh登录
步骤一、更新源后安装openssh-server
apt install -y openssh-serve
或
sudo apt-get install openssh-server
步骤二、配置ssh文件sshd_config
vim /etc/ssh/sshd_config
修改位置
将原本可能为prohibit-password或者withoutpasswod更改成yes,并在文本最后行加UsePAN no
修改位置
步骤三、启动ssh
service ssh start
步骤四、修改远程密码
通过命令:passwd root后输入需要更改的密码
ssh连接已配置完成,远程连接成功
4、mysql远程
1)启动mysql后,修改root的localhost,这样可以使root用户被远程连接
service mysql start
mysql>use mysql;
mysql>update user set host ="%" where user = "root";
mysql>select host, user from user;
mysql>FLUSH PRIVILEGES;
如果本来就有%root用户,可以将root密码修改为一致,因为多个root密码有可能不一致
多个root
(无password字段的版本)update user set authentication_string=PASSWORD("密码") where user='root';
(有password字段的版本)update user set password=password('密码') where user='root';
set password for root@'%' password=password("密码");
mysql>FLUSH PRIVILEGES;
2)配置/etc/mysql/my.cnf
vim /etc/mysql/my.cnf
注释掉bind-address = 127.0.0.1
3)重启mysql服务
service mysql restart
远程成功
远程连接填上root,密码,和你映射的端口别填错,不出意外就能成功了
注、远程记得配置服务器防火墙,docker记得映射3306端口
网友评论