首页 > 代码库 > docker
docker
docker
- docker
- 安装
- 如果出现启动错误
- 下载镜像
- 运行
- 命令
- 修改源文件
- 升级docker
- 安装ssh
- docker 安装mysql
- dockerfile of run mysql
- 使用mysql官方镜像
- 阿里云安装mysql
- mysql主从复制
- mongo
- 外网使用阿里云加速docker下载
- 阿里云镜像仓库 https://dev.aliyun.com/search.html
- 安装
安装
sudo apt-get install docker.io
如果出现启动错误
20/06/14 02:19:41 Listening for HTTP on unix (/var/run/docker.sock)
[2758c589] -job init_networkdriver() = OK (0)
20/06/14 02:19:41 WARNING: Your kernel does not support cgroup swap limit.
Error loading docker apparmor profile: exec: "/sbin/apparmor_parser": stat /sbin/apparmor_parser: no such file or directory ()
[2758c589] -job initserver() = ERR (
执行
sudo apt-get install appamor
然后重启docker
sudo service docker start
sudo docker run -t -i ubuntu /bin/bash
FATA[0000] Error response from daemon: Cannot start container 16eb08942934bab44f70082b8bc986accbea4590f1c87216c7c067510aca14: [8] System error: mountpoint for devices not found
sudo apt-get install cgroup-lite
下载镜像
docker pull ubuntu
#下载ubuntu镜像
运行
$docker run ubuntu "hello word"
命令
docker pull 06sk5hpw.mirror.aliyuncs.com/library/ubuntu
docker ps #检查运行中的镜像
docker inspect dockerID #查看更详细的关于某一个容器的信息。
docker logs <容器名orID> 2>&1 | grep ‘^User: ‘ | tail -n1 #查看容器的root用户密码
docker logs -f <容器名orID> #查看容器日志
docker ps #查看正在运行的容器
docker ps -a #为查看所有的容器,包括已经停止的。
docker rm $(docker ps -a -q) #删除所有容器
docker pull <镜像名:tag> #拉取镜像
docker rm <容器名orID> #删除单个容器
#停止、启动、杀死一个容器
docker stop <容器名orID>
docker start <容器名orID>
docker kill <容器名orID>
#与现有容器交互
docker attach container
Docker允许使用attach命令与运行中的容器交互,并且可以随时观察容器內进程的运行状况。退出容器可以通过两种方式来完成:
Ctrl+C 直接退出
Ctrl-\ 退出并显示堆栈信息(stack trace)
#与现有容器交互
docker exec -it 9a57 /bin/bash
#查看所有镜像
docker images
#删除所有镜像
docker rmi $(docker images | grep none | awk ‘{print $3}‘ | sort -r)
#运行一个新容器,同时为它命名、端口映射、文件夹映射。以redmine镜像为例
docker run --name redmine -p 9003:80 -p 9023:22 -d -v /var/redmine/files:/redmine/files -v /var/redmine/mysql:/var/lib/mysql sameersbn/redmine
#一个容器连接到另一个容器
docker run -i -t --name sonar -d -link mmysql:db tpires/sonar-server
sonar
#当需要把一台机器上的镜像迁移到另一台机器的时候,需要保存镜像与加载镜像。
机器a
docker save busybox-1 > /home/save.tar
#使用scp将save.tar拷到机器b上,然后:
docker load < /home/save.tar
#后台运行(-d)、并暴露端口(-p)
docker run -d -p 127.0.0.1:33301:22 centos6-ssh
#ubuntu14下的docker是没有service服务。去除每次sudo运行docker命令,需要添加组:
# Add the docker group if it doesn‘t already exist.
$ sudo groupadd docker
#改完后需要重新登陆用户
$ sudo gpasswd -a ${USER} docker
#运行控制台
sudo docker run -i -t ubuntu /bin/bash
修改源文件
cd /etc/apt
cp sources.list sources.list.bak
vi sources.list
cat /etc/issue #look the server version
#goto https://mirrors.ustc.edu.cn/repogen/ gen sourcelist
#if the mirrors start with https and apt-get update can‘t conn,
#please change https to http when gen the source list
cp the list into sources.list
升级docker
# apt-get -y install apt-transport-https
# apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
# bash -c "echo deb https://get.docker.io/ubuntu docker main >/etc/apt/sources.list.d/docker.list"
# apt-get update
# apt-get -y install lxc-docker
# docker -v //查看docker版本
# ps -ef | grep docker
# apt-get -u -y upgrade lxc-docker 安全升级
# apt-get -u -y dist-upgrade lxc-docker 安全升级失败可用这个强制解决依赖包升级
安装ssh
1、启动一个docker容器
# docker run -t -i ubuntu/ruby:v1 /bin/bash
2、然后在容器里,安装openssh-server openssh-client
# apt-get install openssh-server openssh-client
3、完成之后,修改root密码
# passwd
4、退出容器,并保存以上修改
# docker commit 3ea7a99a0025 ubuntu/ruby:v2
5、停止,并删除刚才的容器
# docker stop [container-id]
# docker rm [container-id]
查看容器id
# docker ps -a
查看镜像列表
# docker images
6、用刚保存的镜像,后台启动一个新的容器
docker run --name [image-name] -i -t -p 50001:22 [image-id]
例: # docker run -d -p 50001:22 ubuntu/ruby:v2 /usr/sbin/sshd -D
7、ssh远程登录该容器
# ssh root@localhost -p 50001
docker 安装mysql
apt-get update
apt-get install mysql-server vim
#vi /etc/bash.bashrc
最下面添加mysql开机启动
#/etc/init.d/mysql start
设置mysql允许外网连接
启动容器映射端口
//sudo docker run -t -i -p 3306:3306 mysql /bin/bash 带命令行启动
docker run -d -p 3306:3306 mysql:v2 --name mysql
dockerfile of run mysql
FROM mysql:v2
MAINTAINER WongLoong "diarbao@foxmail.com"
EXPOSE 3306
CMD ["/usr/bin/mysqld_safe"]
#build & run
docker build -t ubuntu:mysql .
docker run -d -p 3306 ubuntu:mysql
使用mysql官方镜像
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql
docker run --name db-p 3306:3306 -e MYSQL_ROOT_PASSWORD=xuelong -v /data:/var/lib/mysql -d mysql:5.7
#添加启动参数
docker run --name mysql-p 3306:3306 -e MYSQL_ROOT_PASSWORD=find2i -v /data/mysql1:/var/lib/mysql -d 06sk5hpw.mirror.aliyuncs.com/library/mysql --character-set-server=utf8
阿里云安装mysql
docker pull 06sk5hpw.mirror.aliyuncs.com/library/mysql
mysql主从复制
#主
docker run --name mysql1 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=find2i -v /data/mysql1:/var/lib/mysql -d 06sk5hpw.mirror.aliyuncs.com/library/mysql --character-set-server=utf8 --log-bin=mysql-bin --server-id=1
#从
docker run --name mysql1 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=find2i -v /data/mysql1:/var/lib/mysql -d 06sk5hpw.mirror.aliyuncs.com/library/mysql --character-set-server=utf8 --log-bin=mysql-bin --server-id=2
#登录主sql
GRANT REPLICATION SLAVE ON *.* to ‘mysync‘@‘%‘ identified by ‘q123456‘;
show master status;
*************************** row ***************************
#mysql-bin.000001 431
---
#登录从sql
change master to master_host=‘192.168.145.222‘,master_user=‘mysync‘,master_password=‘q123456‘,
master_log_file=‘mysql-bin.000001‘,master_log_pos=431;
start slave;
show slave status
*************************** row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.2.222 //主服务器地址
Master_User: mysync //授权帐户名,尽量避免使用root
Master_Port: 3306 //数据库端口,部分版本没有此行
Connect_Retry: 60
Master_Log_File: mysql-bin.000004
## Read_Master_Log_Pos: 600 //#同步读取二进制日志的位置,大于等于Exec_Master_Log_Pos
Relay_Log_File: ddte-relay-bin.000003
Relay_Log_Pos: 251
Relay_Master_Log_File: mysql-bin.000004
Slave_IO_Running: Yes //此状态必须YES
Slave_SQL_Running: Yes //此状态必须YES
---
stop slave;
start slave;
RESET slave;
change master to master_host=‘10.161.134.2‘,master_user=‘mysync‘,master_password=‘q123456‘,
master_log_file=‘mysql-bin.000001‘,master_log_pos=173408198;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; #跳过一个事务
mongo
docker pull mongo
sudo docker run --name mongo -v /data/mongo/:/data/db -p 270:27017 -d mongo --参数名 值
外网使用阿里云加速docker下载
阿里云镜像仓库 https://dev.aliyun.com/search.html
docker
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。